パターンが最初に表示される部分の上の行を含む、すべてのコンテンツを除くファイルの内容をどのように印刷しますか?
15行目のパターンが「^Previous」と仮定すると、1〜13行目を印刷したいと思います。
答え1
sed
すべてを自分で行うことができます:
sed -n '$!N;/.*PATTERN.*/q;P;D' infile
簡単です。自動モードをオンにしてスライドウィンドウを使用して(N
そしてD
パターンスペースに常に2行あるように)、遭遇すると、q
uitはパターンスペースの最初の行を印刷してループを再開します。PATTERN
P
gnu sed
自動的に印刷されないため、Q
自動モードをスキップできるため、短くなります。
sed '$!N;/.*PATTERN.*/Q;P;D' infile
答え2
キスするのはどうですか?
sed '1,/^Previous/!d' file | head -n -2