awkを使用してキーワードを検索する必要がありますが、大文字と小文字を区別しない(大文字と小文字を区別しない)検索を実行したいです。
最良のアプローチは、検索語(「キーワード」)とawkが同時に読んでいるターゲット行の両方を大文字にすることだと思います。この質問から、私toupper
はすべて大文字で印刷する方法を使用しますが、マッチでそれを使用する方法がわかりません。なぜなら、その答えは単に印刷を示し、大文字のテキストを変数に残さないからです。
この入力が与えられた例を次に示します。
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
この出力が欲しい:
I want all
these text and numbers 123
and chars !"£$%&
as output
これは私が持っているものですが、追加する方法がわかりませんtoupper
:
awk "BEGIN {p=0}; /&&&key word&&&/ { p = ! p ; next } ; p { print }" text.txt
awk 'toupper($0)~/&&&KEY WORD&&&/ { p = ! p ; next } ; p;' text.txt
。BEGIN
ブロックは不要です。デフォルトのアクションは印刷でp;
あるため、これで十分です。