我的文件包含以下行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2002 -j ACCEPT
我想评论(添加#infront)
这一行-A INPUT -m state --state NEW -m tcp -p tcp --dport 2001 -j ACCEPT
我如何通过SED或其他方法通过命令行执行此操作?
我应该寻找......例如..
2001
然后注释掉整行(添加#infront of)
或者我应该搜索整行,然后将其替换为包含#?
的新行最实用的方法是什么? (最快)
答案 0 :(得分:11)
通过sed,
sed '/ 2001 /s/^/#/' file
添加内联编辑-i
选项以保存所做的更改。
sed -i '/ 2001 /s/^/#/' file
示例:
$ sed '/ 2001 /s/^/#/' file
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2000 -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 2001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2002 -j ACCEPT
答案 1 :(得分:2)
此awk
也可以。
awk '/2001/ {$0="#"$0}1' file
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2000 -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 2001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2002 -j ACCEPT