テキストファイルでUnixでsedを使用して特定のテキストモードで囲まれたテキストのさまざまな部分を分離する方法は?

テキストファイルでUnixでsedを使用して特定のテキストモードで囲まれたテキストのさまざまな部分を分離する方法は?

sed -n START_LINE,FINISH_LINEp filename > newfile テキストファイルから特定の範囲のテキストを抽出するために使用しますsed -n 45,50p datafile > newfile

常に同じテキストモードで囲まれた複数のテキストセクションを抽出するにはどうすればよいですか?たとえば、抽出したいテキストは常に39行目で始まり、Subject:?????直前に終わりますStart Date: ??/??/??

答え1

これ自体はあなたの質問に答えることはできませんが、awkエレガントな解決策があります。

$ awk '

    # Set start variable
    /Subject/ { start=NR + 39; }

    # Disable print condition below
    /Start Date/ { start=""; next; }

    # Print while line is greater than start
    NR > start && start

' someFile.txt

関連情報