Shell 修改文件内容的awk
我有一个文件是tabShell 修改文件内容的awk,shell,awk,sed,Shell,Awk,Sed,我有一个文件是tab'\t'这样分开的 8 263 722016-8-263-2016_02_07_03:00:18-544992 Text1 4 8 722016-8--2016_02_07_03:00:18-307392 Text2 1 8 220 722016-8-220-2016_02_07_03:00:18-488656 Text3 3 8 727 722016-8-727-2016_02_07_03:00:18-786195 Text4
'\t'
这样分开的
8 263 722016-8-263-2016_02_07_03:00:18-544992 Text1 4
8 722016-8--2016_02_07_03:00:18-307392 Text2 1
8 220 722016-8-220-2016_02_07_03:00:18-488656 Text3 3
8 727 722016-8-727-2016_02_07_03:00:18-786195 Text4 1
我必须修改第三栏的内容。我可以得到像这样的第三列awk'{print$3}file.txt
722016-8-263-2016_02_07_03:00:18-544992
Text2
722016-8-220-2016_02_07_03:00:18-488656
722016-8-727-2016_02_07_03:00:18-786195
但在第2行第2列中,我在输出中得到的是Text2
,而不是722016-8--2016\u 02\u 07\u 03:00:18-307392
。所以我想从最后一列中获得第三列,并在该列的开头插入“Test1-
”。上述文件的预期输出将为--
您可以使用此awk:
awk 'BEGIN{FS=OFS="\t"} NF==4{$1=$1 "\t"} {$(NF-2) = "Test1-" $(NF-2)} 1' file
输出:
8 263 Test1-722016-8-263-2016_02_07_03:00:18-544992 Text1 4
8 Test1-722016-8--2016_02_07_03:00:18-307392 Text2 1
8 220 Test1-722016-8-220-2016_02_07_03:00:18-488656 Text3 3
8 727 Test1-722016-8-727-2016_02_07_03:00:18-786195 Text4 1
@阿努巴韦忘了提到。。。。。我的输入文件在选项卡中分开了。。。。。。。输出也应该用制表符“\t”分隔
8 263 Test1-722016-8-263-2016_02_07_03:00:18-544992 Text1 4
8 Test1-722016-8--2016_02_07_03:00:18-307392 Text2 1
8 220 Test1-722016-8-220-2016_02_07_03:00:18-488656 Text3 3
8 727 Test1-722016-8-727-2016_02_07_03:00:18-786195 Text4 1