0

Regex で渡した行を除くテキスト内のすべての行を検索する Regex を使用したいと考えています。ここに便利なコードが見つかりました ここにリンクの説明を入力してくださいawk '/.*test.*/{f=1}f;/end/{f=0}' myFile。逆に使いたい。

つまり、 testendの間の行は見たくありませんが、他の行は見たいということです。

これをLinux環境で実行したいと考えています。

これらを否定するにはどうすればよいAWKですか?

4

3 に答える 3

1

firstとの間のすべての行を表示するには、次のようにしendます。

awk '/first/,/end/'

それを逆にするには:

awk '/first/,/end/{next}1'

(2 番目の例では、もう少し読みやすくなっています: awk '/first/,/end/{next}{print}'。上記のバージョンは awk のデフォルト アクションに依存し{print}ます。1true

于 2013-10-27T07:21:08.753 に答える
0

sedこれにはより適切です:

sed '/first/,/end/d'

firstは、パターンに一致する最初の行まで、パターンに一致する行の間およびパターンに一致する行を含むすべての行を削除しますend

于 2013-10-27T14:36:13.623 に答える
0

このようないくつか

awk '/test/ {f=1} !f; /end/ {f=0}' file

が見つかるまですべての行をtest印刷し、が見つかったら再び印刷を開始しますend

于 2013-10-27T07:18:27.860 に答える