0

我有两个文件 Listed.csv 和 Config.txt,我想做的是找到两个文件之间的所有精确字符串匹配,然后在 Config.txt 文件中匹配行的开头附加一个 # 。

我应该注意到文件中有句点,因为它们主要由 IP 地址(IPv4)组成

我想要做的例子

列出的.csv

smtp-listener 10.0.0.1
smtp-listener 10.0.0.2

配置文件

smtp-listener 10.0.0.1
smtp-listener 10.0.0.2

所需输出

配置文件

#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"
4

1 回答 1

2

awk救援!

$ awk 'NR==FNR{a[$0]; next} $0 in a{$0="#" $0}1' listed config > config.updated
于 2019-06-04T16:14:18.480 回答