awkを使用して文字列を複数の単語にグループ化する方法は? (2つのパターンの間に線を印刷します)

awkを使用して文字列を複数の単語にグループ化する方法は? (2つのパターンの間に線を印刷します)

問題があります。私の文字列は単一の文字列ではありません。 sedではうまくいきますが、awkではありません。

awkを使用してすべての文字列をグループ化する方法は?" "、with、およびwithで{ }文字列をカプセル化しようとしましたが、( )何も機能しませんでした。以下はsedとawkの例です。

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

この行はsedと完全に機能します"show system | inc Software""sh syst | inc @@@@@"

awkの場合は動作しません。

awk '/show system | inc Software/,/sh syst | i @@@@@/' filename.txt > out_file.txt

出力ファイルが期待したものとは異なります。この文字列がこのコマンドで機能するようにするにはどうすればよいですか?

答え1

入力データと期待される出力データを含めることで、質問を理解しやすくなります。

次のawkコマンドは 'show system | inc Software'と'sh syst i @@@@@'行とその間のすべての行を印刷します。

awk '/show system \| inc Software/,/sh syst \| i @@@@@/{n=0}' filename.txt > out_file.txt

編集する:

また、あなたのコマンドが機能していないようですsed。 (あなたの質問を理解したと仮定します。)

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

関連情報