[解決済み] awk/sed で複数回発生する可能性のある 2 つのマーカーパターンの間の行を選択する方法
2022-05-15 05:19:55
質問
使用方法
awk
または
sed
2つの異なるマーカーパターンの間にある線を選択するにはどうしたらよいですか。これらのパターンでマークされたセクションが複数ある可能性があります。
例えば ファイルに
abc
def1
ghi1
jkl1
mno
abc
def2
ghi2
jkl2
mno
pqr
stu
そして、開始パターンは
abc
で、終了パターンは
mno
というように出力する必要があります。
def1
ghi1
jkl1
def2
ghi2
jkl2
sedを使って一度だけパターンにマッチさせています。
sed -e '1,/abc/d' -e '/mno/,$d' <FILE>
の中で、何か方法はないでしょうか?
sed
または
awk
でファイルの終わりまで繰り返し実行しますか?
どのように解決するのですか?
使用方法
awk
を使い、必要なときに印刷を開始するようにフラグを立てます。
$ awk '/abc/{flag=1;next}/mno/{flag=0}flag' file
def1
ghi1
jkl1
def2
ghi2
jkl2
これはどのように機能するのでしょうか?
-
/abc/
は、このテキストを持つ行にマッチし、さらに/mno/
と同様です。 -
/abc/{flag=1;next}
はflag
が設定されると、テキストabc
が見つかったら そして、その行をスキップする。 -
/mno/{flag=0}
をアンセットします。flag
というテキストがある場合mno
が見つかります。 -
最後の
flag
はデフォルトのアクションを持つパターンで、これはprint $0
: もしflag
が 1 であれば、その行が表示されます。
より詳細な説明と例、およびパターンが表示される場合とされない場合については 2つのパターンの間の行を選択するには? .
関連
-
[解決済み] sed が正規表現で終端がない代用品でエラーになる
-
Linuxシェルプログラミングのエラー "bad substitution "の解決法
-
ハイブのsqlとシェルスクリプトを書いているときに、いくつかの痛い問題に遭遇しました
-
linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.
-
shell ファイル名が特定の文字で始まっているかどうかを判断する方法
-
[解決済み] Makefile で子プロセスの環境変数を設定する方法
-
[解決済み] xargsがスペースを含むファイル名を扱えるようにする
-
[解決済み】シェルスクリプトでファイルが存在するかどうかを確認する方法
-
[解決済み] IPアドレスだけを取得するには、どのターミナルコマンドを使用すればよいですか?
-
[解決済み] sed または awk: パターンに従って n 行を削除する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.
-
シェルスクリプト、判定文エラー [: 引数が多すぎる
-
[解決済み] makefileでシェル環境変数を取得するには?
-
[解決済み] Dockerコンテナの強制終了
-
[解決済み] ファイル中のある文字列が出現する行番号を表示するには?
-
[解決済み】ある名前に一致するプロセスをすべて終了させる方法は?
-
[解決済み】sedを使ったマッチの後の行の挿入
-
[解決済み】シェルパイプラインで`jq`を使用するには?
-
[解決済み] カットで列を並べ替える
-
[解決済み] sed 全単語検索と置換