私はawkを使ってパターンを見つけ、パターンが見つかった直後に10行のコンテンツを追加するという状況があります。 iptables.txtのawkを使用してパターンの後に複数の行を追加する方法
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
出力が実行
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
awkの機能のようになります:
を私は以下で動作するようにしようとしましたが、ファイルiptable.txt入力に内容は動作しません。
awk '/--dport 22 -j ACCEPT/{print $0 RS
"-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT"
"-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT"
"-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT"
} 1' > tmp && mv tmp /home/user/iptables.txt
私が達成しようとしていることは、上記のawkコマンドを実行したときです。 Dラインとiptable.txtファイルを追加。これは、あなたが探しているものはおそらくである20、21および23
ありがとうウィリアム - 私はawkを試みる前にsedを試みた。 sedは ' - '(ダッシュ)について苦情を申し立て、\をエスケープしようとすると、 '\'について文句を言う。 – AmigoSe
@GanSe Sedが苦情を申し立てたものを正確に表示できますか?そしてsedのどのバージョン。 –