我有两个文件Listed.csv和Config.txt,我想做的是找到两个文件之间所有完全匹配的字符串,然后在Config.txt文件中的匹配行的开头添加#。
我应该注意文件中有一些句点,因为它们主要由IP地址(IPv4)组成
我要做什么的例子
Listed.csv
smtp-listener 10.0.0.1
smtp-listener 10.0.0.2
Config.txt
smtp-listener 10.0.0.1
smtp-listener 10.0.0.2
所需的输出
Config.txt
#smtp-listener 10.0.0.1
#smtp-listener 10.0.0.2
我已经尝试过的代码
#!/bin/bash
echo "Replace Periods with {}"
sed -i 's/\./{}/g' config.txt
sed -i 's/\./{}/g' Listed.csv
CONFIG="$(cat Listed.csv)"
sed -i "s/$CONFIG/#$CONFIG/g" config.txt
echo "Replace {} with Periods"
sed -i 's/{}/\./g' config.txt
sed -i 's/{}/\./g' Listed.csv
echo "Done"
答案 0 :(得分:2)
awk
来营救!
$ awk 'NR==FNR{a[$0]; next} $0 in a{$0="#" $0}1' listed config > config.updated