我有一个文本文件,其中包含两列,其中包含要搜索的字符串,另一列是相应的替换。因此,使用此文件A,我必须替换文件B的内容。找到文件B中文件A的第一列对应的字符串,并将其替换为文件A的相应第二列。
我怎样才能在bash中完成
答案 0 :(得分:1)
awk 'NR==FNR{p[NR]=$1;r[NR]=$2;n=NR;next}{for(i=1;i<=n;i++)gsub(p[i],r[i])}7' A B
没有测试,但应该工作。至少你应该明白这一点。
答案 1 :(得分:0)
您可以使用此Bash
sript:
A=path/to/A
B=path/to/B
del=" "
while read line; do
pattern=`echo $line | cut -d "$del" -f 1`
substitution=`echo $line | cut -d "$del" -f 2`
sed -i "s/$pattern/$substitution/g" $B
done < $A
需要考虑的一些事项:
A
和B
应分别保存文件A和B的文件名del
应该是文件A pattern
或substitution
列包含斜杠,则需要修改sed
命令并将/
替换为任何一个都不会出现的内容模式或替代,例如!