Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我必须提取在文件中多次出现的变量的值。例如,我有一个文本文件abc.txt. 有一个变量result。假设result第一行的值为2,第三行的值为55,最后一行的值为66。那么我想要的输出应该是:
abc.txt
result
2
55
66
result:2,55,66
我是 unix 新手,所以我不知道该怎么做。请帮忙
文本文件的内容可以如下:
R$#$#%$W%^BHGF, result=2, fsdfsdsgf VSDF$TR$R,result=55 fsdf4r54 result=66
尝试这个 :
使用awk代码:
awk -F'(,| |^)result=' ' /result=/{ gsub(",", "", $2) v = $2 str = (str) ? str","v : v } END{print "result:"str} ' abc.txt
使用perl代码:
perl -lane ' push @arr, $& if /\bresult=\K\d+/; END{print "result:" . join ",", @arr} ' abc.txt
输出 :