複数行を含むテキストファイルがあり、特定のテキストを含む行を検索し、この行の先頭に#を追加したいと思います。
例:file1を変更したいです。
acnet 6801/tcp # ACNET Control System Protocol
acnet 6801/udp # ACNET Control System Protocol
dlip 7201/tcp # DLIP
dlip 7201/udp # DLIP
ssp-client 7801/tcp # Secure Server Protocol - client
ssp-client 7801/udp # Secure Server Protocol - client
inputfile1のポートを見つけたいです。入力ファイルには以下が含まれます。
6801
7801
したがって、file1の最終出力は次のようになります。
#acnet 6801/tcp # ACNET Control System Protocol
#acnet 6801/udp # ACNET Control System Protocol
dlip 7201/tcp # DLIP
dlip 7201/udp # DLIP
#ssp-client 7801/tcp # Secure Server Protocol - client
#ssp-client 7801/udp # Secure Server Protocol - client
頑張った
cat /etc/services |grep -f ports.txt | awk '{ print"#" $g}';
しかし、これは私に画面に出力を与えます。ファイルでどのように変更できますか?
ベストアンサー1
次のようにしてみてください。
awk -F"[ \t]*|/" 'NR==FNR{A[$1]; next} $2 in A { printf "#" }1' ports.txt /etc/services > newfile
出力が正しい場合は、次の場所にコピーできます。/etc/services