【发布时间】:2020-09-29 10:57:48
【问题描述】:
出于解析目的,我需要在命令行中根据另一列的字符数将第一列的内容拉伸 n 次。
注意: Col2 包含混合类型:,.[A-Za-z]
我应该这样转:
cat myFile.tsv
Col1 Col2
Text1 XXXX
Text2 XX
Text3 XXX
进入这个:
cat myNewFile.tsv
Col1
Text1
Text1
Text1
Text1
Text2
Text2
Text3
Text3
Text3
您有什么有效的建议吗? 谢谢 :D !!
【问题讨论】:
-
使用for循环...可以使用
length函数获取字符数 -
显然由于内存限制,我无法用 for 循环处理它,这可能吗?
-
将您给定的示例更改为类似于您的实际用例的东西,除非那些
X足以代表它..我的意思是使用 awk 循环,而不是 shell,以防您这样尝试..添加您也尝试过的命令,因为预计您会表现出您的努力.. -
好的,我试试 awk 循环。那些 X 只代表第二列 (4,2,3) 中的字符数
-
谢谢!事实上,我想我设法用
awk '{for(i=0;i<length($2);i++)print $1}' myFile.tsv > myNewFile.tsv做到了
标签: awk sed command-line