根据另一列';s长度(使用awk)?

根据另一列';s长度(使用awk)?,awk,sed,command-line,Awk,Sed,Command Line,为了进行解析,我需要在命令行中根据另一列的字符数将第一列的内容拉伸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

为了进行解析,我需要在命令行中根据另一列的字符数将第一列的内容拉伸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

使用awk:

awk 'NR==1{print $1; next} {for(i=1; i<=length($2); i++){print $1}}' file

使用for循环。。。您可以使用
length
函数获取字符数。显然,由于内存限制,我无法使用for循环处理它。是否可能?将给定的示例更改为与实际用例相似的内容,除非那些
X
足以表示它。。我的意思是循环使用awk,而不是shell,以防您这样尝试。。添加您尝试过的命令,因为它期望您显示您的努力。好的,我将尝试awk循环。这些X仅代表第2列(4,2,3)中的字符数。谢谢!事实上,我想我用awk{for(I=0;isheze-dead ringer)成功地做到了这一点。写了一行,看了看你的答案,唯一的区别是你有额外的
{..}
和循环
I=0;i@cast尽管此处不需要,但在处理制表符分隔的文件时,请使用
-F'\t'
Col1 Text1 Text1 Text1 Text1 Text2 Text2 Text3 Text3 Text3