「sed」を使用して、特定のパターンに一致する行のコメントを解除します

アリストテレス

ファイルの特定の行のコメントを解除しようとしています。コメントはオプションで始まり、その後に1行以上のコメントが続きます。これが私が処理しようとしているファイルの最小限の例です(example.txt):

# Ignore this one
# first-option)
#   something-something x \
#       run-something-else y \
#       run-after-this z \
#       set-some-config-var 10 10

# Uncomment this one
# second-option)
#   something x \
#       run-something-else y \
#       run-something-else-again z \
#       run-after-this-something z \
#       set-some-config-var 10 10 \
#       set-some-config-var cool

そして私の素朴な解決策(test.sed)、最初に目的のパターンを見つけ、次に繰り返し置換を適用することによって:

#!/usr/bin/env sed

/#.*second-option/{
    s/# //; p; n;
    s/# //; p; n;
    s/# //; p; n;
    s/# //; p; n;
    s/# //; p; n;
    s/# //; p; n;
    s/# //; p; n;
}

出力:

$ sed -n -f test.sed example.txt
second-option)
  something x \
      run-something-else y \
      run-something-else-again z \
      run-after-this-something z \
      set-some-config-var 10 10 \
      set-some-config-var cool

私はすべてsedのオプションに精通しているわけではありませんが、これを行うためのより一般的な方法(またはより冗長でない方法)があるかどうか興味がありました。

トビー・スパイト

アドレス範囲を使用してこれを行いますsecond-option空白行が表示されたときに開始し、空白行が表示されたときに終了します。

#!/bin/sed -f

/^#.*second-option/,/^#? *$/s/^# //
#     from         |  to   | substitute

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

sedを使用してパターン一致後に前の行を印刷しますか?

分類Dev

awkを使用して、前の行と一致する場合は特定のパターンを抽出します

分類Dev

sedを使用して、パターンが一致し、空の行がある行を除いて、行の先頭に文字を挿入します

分類Dev

sedを使用して最初と最後の一致パターンの前に行を挿入する方法

分類Dev

sedを使用して、複数行のテキストで一致したパターンを別のパターンに置き換えます

分類Dev

前の行がパターンと一致しない場合は、sedを使用して複数行の間にテキストを追加します

分類Dev

パターンが一致したときにsedを使用して複数の行を削除し、最初の空白行まで停止する方法は?

分類Dev

SEDまたはAWKを使用して、xmlファイル内の2つの異なるパターンに一致する2行を複製します

分類Dev

sed \ awkを使用してファイル内の特定の行を検索し、異なるパターンに一致する後続のすべての行を一致させるにはどうすればよいですか?

分類Dev

sed別の一致するパターンの後にない場合、パターンに一致する行を削除します

分類Dev

sedを使用して、一致するパターンの出現のいずれかを編集します

分類Dev

grepを使用して、パターンに一致する最初の行から別のパターンにすべての行を返します

分類Dev

一致パターンは、必要に応じて出力ファイルのコメントを更新します

分類Dev

パターンに一致する行の最初の列の上の行の値をコピーします

分類Dev

ファイルの先頭からsedを使用したパターン一致行へのコメント

分類Dev

sed2つのファイル間のパターンに一致する行を削除します

分類Dev

特定のパターンと一致する文字列の一部を抽出する方法ですが、すべてのケースで行にあり、パンダを使用してコンマで区切ります

分類Dev

awk/sed を使用して、パターンに一致するブロック内のテキストを出力します

分類Dev

Jq:特定のパターンに一致するすべてのキーを再帰的に削除します

分類Dev

sed:パターンAの最後の一致までのすべての行を印刷してから、パターンBに一致する行のみを印刷します

分類Dev

パターンに一致する特定の単語を抽出します

分類Dev

最後の終了パターン一致まで、私のパターンに一致するすべての行を出力します

分類Dev

sedは一致するパターンの一部を作成します

分類Dev

名前パターンに一致するプロジェクトでmstestを使用してすべての単体テストを実行します

分類Dev

sed-特定の文字列に一致し、まだコメント化されていない行にコメントを付ける

分類Dev

特定のパターンとして一致するまで、単一の行を複数の行に分割します

分類Dev

Sedを使用して特定の文字列を含む行をコメント解除する方法は?

分類Dev

Awk / Sedを使用して、ファイル内の一致したパターンの値を代入します

分類Dev

xmllintを使用して特定のパターンに一致するプロパティを見つける方法

Related 関連記事

  1. 1

    sedを使用してパターン一致後に前の行を印刷しますか?

  2. 2

    awkを使用して、前の行と一致する場合は特定のパターンを抽出します

  3. 3

    sedを使用して、パターンが一致し、空の行がある行を除いて、行の先頭に文字を挿入します

  4. 4

    sedを使用して最初と最後の一致パターンの前に行を挿入する方法

  5. 5

    sedを使用して、複数行のテキストで一致したパターンを別のパターンに置き換えます

  6. 6

    前の行がパターンと一致しない場合は、sedを使用して複数行の間にテキストを追加します

  7. 7

    パターンが一致したときにsedを使用して複数の行を削除し、最初の空白行まで停止する方法は?

  8. 8

    SEDまたはAWKを使用して、xmlファイル内の2つの異なるパターンに一致する2行を複製します

  9. 9

    sed \ awkを使用してファイル内の特定の行を検索し、異なるパターンに一致する後続のすべての行を一致させるにはどうすればよいですか?

  10. 10

    sed別の一致するパターンの後にない場合、パターンに一致する行を削除します

  11. 11

    sedを使用して、一致するパターンの出現のいずれかを編集します

  12. 12

    grepを使用して、パターンに一致する最初の行から別のパターンにすべての行を返します

  13. 13

    一致パターンは、必要に応じて出力ファイルのコメントを更新します

  14. 14

    パターンに一致する行の最初の列の上の行の値をコピーします

  15. 15

    ファイルの先頭からsedを使用したパターン一致行へのコメント

  16. 16

    sed2つのファイル間のパターンに一致する行を削除します

  17. 17

    特定のパターンと一致する文字列の一部を抽出する方法ですが、すべてのケースで行にあり、パンダを使用してコンマで区切ります

  18. 18

    awk/sed を使用して、パターンに一致するブロック内のテキストを出力します

  19. 19

    Jq:特定のパターンに一致するすべてのキーを再帰的に削除します

  20. 20

    sed:パターンAの最後の一致までのすべての行を印刷してから、パターンBに一致する行のみを印刷します

  21. 21

    パターンに一致する特定の単語を抽出します

  22. 22

    最後の終了パターン一致まで、私のパターンに一致するすべての行を出力します

  23. 23

    sedは一致するパターンの一部を作成します

  24. 24

    名前パターンに一致するプロジェクトでmstestを使用してすべての単体テストを実行します

  25. 25

    sed-特定の文字列に一致し、まだコメント化されていない行にコメントを付ける

  26. 26

    特定のパターンとして一致するまで、単一の行を複数の行に分割します

  27. 27

    Sedを使用して特定の文字列を含む行をコメント解除する方法は?

  28. 28

    Awk / Sedを使用して、ファイル内の一致したパターンの値を代入します

  29. 29

    xmllintを使用して特定のパターンに一致するプロパティを見つける方法

ホットタグ

アーカイブ