[解決済み] sed を使って 2 つのマッチするパターンの間のすべての行を削除する
2023-03-29 04:59:50
質問
以下のようなファイルを持っています。
# ID 1
blah blah
blah blah
$ description 1
blah blah
# ID 2
blah
$ description 2
blah blah
blah blah
の間のすべての行を削除するには、sed コマンドをどのように使用すればよいですか?
#
と
$
という行になるのでしょうか?ということで、結果はこうなります。
# ID 1
$ description 1
blah blah
# ID 2
$ description 2
blah blah
blah blah
説明もよろしくお願いします。
どのように解決するのですか?
このsedコマンドを使って実現します。
sed '/^#/,/^\$/{/^#/!{/^\$/!d}}' file.txt
Macユーザー(
extra characters at the end of d command
エラーを防ぐため) 閉じ括弧の前にセミコロンを追加する必要があります。
sed '/^#/,/^\$/{/^#/!{/^\$/!d;};}' file.txt
出力
# ID 1
$ description 1
blah blah
# ID 2
$ description 2
blah blah
blah blah
説明
-
/^#/,/^\$/
で始まる行の間のすべてのテキストにマッチします。#
で始まる行と$
.^
は行頭文字として使われます。$
は特殊文字であるため、エスケープする必要があります。 -
/^#/!
は、行頭が#
-
/^$/!
は、行頭が$
-
d
は削除を意味します。
つまり、全体として、最初に
^#
から
^\$
という行を探し、その一致した行から
にマッチしない
^#
と
は一致しません。
^\$
で削除し
d
.
関連
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] テキストファイルから、特定の文字列を含むすべての行を削除するにはどうすればよいですか?
-
[解決済み] sedで改行をスペースに置き換えるには?
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] Unixでテキストファイルからあらかじめ決められた範囲の行を抽出するには?
-
[解決済み] sedによる空行の削除
-
[解決済み] Sed を使って文字列を含む行全体を置換する
-
[解決済み】sedでパターンに基づいたテキストを一度に入れ替えるには?
-
[解決済み】ファイルから#で始まるすべての行を削除する
-
[解決済み] sedを使ってファイルの最後の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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Vimで正規表現に置換すると、`E488: Trailing characters`が発生します。
-
[解決済み] R 文字列から最初の文字を削除する
-
[解決済み] XPathのcontains関数で正規表現を使用する方法
-
[解決済み] Apache LocationMatch Regex
-
[解決済み] 文字列の最後の文字にマッチする正規表現[重複]について
-
[解決済み] RegEx: 引用符で囲まれた値を取得する
-
[解決済み] grep --ignore-case --only
-
[解決済み] Regex空の文字列または電子メール
-
[解決済み] 正規表現、空白文字とコロンを除くすべての非英数字文字
-
[解決済み] 正規表現ネガティブルックアヘッド