转换这样的制表符分隔数据的最有效方法是什么:
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
接近这个:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
目前,我使用Notepad ++的方式如下:
- 将制表符转换为空格
- 手动对齐数据
- 使用列模式插入管道
第二步是最繁琐的一步,我宁愿至少将此部分自动化。
注意:我在工作时使用浏览器,有时会同时打开文本编辑器。一种有效的解决方案是需要最少工作量的解决方案。我可以用:
- 记事本++
- 具有regexp查找/替换支持的通用文本编辑器
- 在浏览器控制台中键入JavaScript
- 在线网络服务
- 命令行中的PHP(
php -a
)
4
你在什么环境?您有哪些可用工具?您对其中哪些熟悉?您愿意或不愿意使用哪些?为了这个问题,您如何定义“效率”?做这项工作的方式可能几乎和想做这项工作的人一样多。您需要提供其他信息。请参阅 如何提出一个好问题。
—
杰夫·齐特林
@JeffZeitlin我将更新问题。
—
Salman A
这是一个简单的
—
Barmar
awk
脚本。
@Barmar我没有使用awk,但我相信其他人会发现它有用。
—
Salman A
询问有关PCG的问题-随后会发生lulz。等一下,已经有人问过了…… codegolf.stackexchange.com/questions/100613 / … (请注意,TSV-> CSV只是一个字符差异...
{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
看起来足够好了,是吗?)