CK
のある行からgrepを開始したい 行の終わりで、行に D
があるときにgrepを停止します 最後に。 grep "$ CK" "$ D" file..txt
を試しました 、しかしそれは機能しませんでした。
入力:
kkkkkkkkkkk
jjjjjjjjjjjjjjjjjj
gggggggggggg/CK
JHGHHHHHHHH
HJKHKKLKLLL
JNBHBHJKJJLKKL
JLKKKLLKJLKJ/D
GGGGGGGGGGGGGG
GGGGGGGGGGGGGG
目的の出力:
gggggggggggg/CK
JHGHHHHHHHH
HJKHKKLKLLL
JNBHBHJKJJLKKL
JLKKKLLKJLKJ/D
承認された回答:
awkまたはsedを使用することをお勧めします
awk '/CK$/,/D$/' file.txt
または
sed -n '/CK$/,/D$/p' file.txt
grepを主張する場合は、ここにGNUgrepの方法があります
grep -oPz '(?s)(?<=n)N+CKn.*?D(?=n)' file.txt
ここ
-P
perl-regexpをアクティブにします
-z
行区切り文字をNULに設定します。これにより、grepはファイル全体を1行として表示します
-o
一致するものだけを印刷します
(?s)
PCRE_DOTALLをアクティブにするため、。
任意の文字または改行を検索します
N
改行以外のものと一致します
。*?
を見つけます。非貪欲モード
(?<=..)コード> 後読みアサーションです
(?=..)コード> 先読みアサーションです