0
gawk '/<Lexer>/,/<\/Lexer>/' file

これは機能しますが、最初と最後のレコードを出力します。省略したいのですが。そうする方法は?

「範囲パターンをオンにするレコードとオフにするレコードの両方が範囲パターンと一致します。これらのレコードを操作したくない場合は、ルールのアクションにifステートメントを記述してそれらを区別することができます。興味のあるレコード。」しかし、例はありません。のようなものを試しまし gawk '/<Lexer>/,/<\/Lexer>/' {1,FNR-1} file たが、機能しません。awkを使用せずにこれを行うためのより良い方法がある場合は、そう言ってください。

4

1 に答える 1

0

あなたは2つの別々のマッチステートメントと変数でそれを行うことができます

gawk '/<Lexer>/{p=1; next} /<\/Lexer>/ {p=0} p==1 {print}' file

これは一致<Lexer>し、pを1に設定してから、次の行にスキップします。pが1の場合、現在の行を出力します。一致</Lexer>すると、pを0に設定し、スキップします。pが0であるため、印刷は抑制されます。

于 2011-11-26T18:34:01.110 に答える