[英]Edit fields inside a file using awk
我正在嘗試使用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}'
您能以一種更可能的方式幫助我嗎?
您可以使用以下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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.