使用awk编辑文件中的字段

时间:2015-02-11 06:10:29

标签: linux bash awk sed

我正在尝试使用awk修改数据列表的第二个字段

输入:

8 : /usr/local/lib/python2.7/test/test_cookie.py : Image

输出:

8 : /usr/local/lib/python2.7/test/ : Image

我想使用awk或sed从第二个字段中删除文件名。

我已经尝试在另一个awk中使用awk命令来替换输入文件的第二个字段。但是这给了我错误:

cat log.txt |awk -F: '{$2=system(cat log.txt |awk -F":" '{print $2}'|awk -F/ '{OFS="/";$NF=""}{print $0}' )}{print $0}'

你能用更可能的方法来帮助我吗?

1 个答案:

答案 0 :(得分:2)

您可以使用此awk

awk 'BEGIN{FS=OFS=" : "} {sub(/[^\/]+$/, "", $2)} 1' log.txt
8 : /usr/local/lib/python2.7/test/ : Image

<强>解释

BEGIN{FS=OFS=" : "}      # Set input and output field separator as " : "
sub(/[^\/]+$/, "", $2)   # Remove part after *last* / from 2nd field
1                        # default awk action to print the record