我有两个文件:file1和file2。
file2中的任何匹配项都应在file1中的单词后面附加“-W”。
文件1:

Verb=Applaud,Beg,Deliver
Adjective=Bitter,Salty,Minty
Adverb=Quickly,Truthfully,Firmly

文件2:
Gate
Salty
Explain
Quickly
Hook
Deliver
Earn
Jones
Applaud
Take

输出:
Verb=Applaud-W,Beg,Deliver-W
Adjective=Bitter,Salty-W,Minty
Adverb=Quickly-W,Truthfully,Firmly

已尝试但不起作用,可能需要太长时间:
for i in `cat file2` ; do
nawk -v DEE="$i" '{gsub(DEE, DEE"-W")}1' file1 > newfile
mv newfile file1
done

最佳答案

这应该有效:

sed 's=^=s/\\b=;s=$=\\b/\&-W/g=' file2 | sed -f- file1

输出:
Verb=Applaud-W,Beg,Deliver-W
Adjective=Bitter,Salty-W,Minty
Adverb=Quickly-W,Truthfully,Firmly

要进行适当的更改:
sed 's=^=s/\\b=;s=$=\\b/\&-W/g=' file2 | sed --in-place -f- file1

关于bash - 查找并替换文件中的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31182941/

10-12 18:32