使用awk从第一列中删除目录路径
我有一个我感兴趣的数据文件,它的列由awk取出,如下所示。我想在同一个awk命令中去掉$1中的目录路径。可能吗使用awk从第一列中删除目录路径,awk,Awk,我有一个我感兴趣的数据文件,它的列由awk取出,如下所示。我想在同一个awk命令中去掉$1中的目录路径。可能吗 cat data.txt | awk '{print $1,$2,$6,$7,$14,$15,$16}' /foo1/foo2/debug/foo.txt:06/28 10:44:44.066 delta 1:1: net transfer 1263 /foo1/foo2/debug/foo1.txt:06/29 10:45:48.066 delta 2:1: net trans
cat data.txt | awk '{print $1,$2,$6,$7,$14,$15,$16}'
/foo1/foo2/debug/foo.txt:06/28 10:44:44.066 delta 1:1: net transfer 1263
/foo1/foo2/debug/foo1.txt:06/29 10:45:48.066 delta 2:1: net transfer 1296
after transformation the row should be like...
foo.txt:06/28 10:44:44.066 delta 1:1: net transfer 1263
foo1.txt:06/29 10:45:48.066 delta 2:1: net transfer 1296
您可以使用带有正则表达式的
sub
删除:
awk '{sub("/[^:]*/","",$1); print $1,$2,$6,$7,$14,$15,$16}' data.txt
(正如问题注释中指出的,此正则表达式假定您的文件和目录名不包含
:
)您的任何文件或目录名都可以包含:
?