Shell 修改文件内容的awk

Shell 修改文件内容的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

我有一个文件是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   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