zzzzzzzzz
aaaaaaaaa
bbbbbbbbb &
ccccccccc &
ddddddddd
hhhhhhhhh
eeeeeeeee
fffffffff &
ggggggggg &
上記の行で私が望むのは、grep
// sed
(awk
すべてのメソッドが可能です)署名された&
行と上記の行です。たとえば、希望の出力は次のようになります。
aaaaaaaaa
bbbbbbbbb &
ccccccccc &
eeeeeeeee
fffffffff &
ggggggggg &
私が幸運に試したことは次のとおりです。
egrep "&" | -b 1 file.txt
ベストアンサー1
あなたはできます:
grep -B 1 '&$' your_file
次に、次に終わる行を見つけて&
削除し、その中のどこでも行を$
一致させます&
。
この-B
スイッチは、grep
一致する行の前に「コンテキスト」行を出力するように指示します。この場合、コンテキストラインが必要なので必要があります-B 1
。
このスイッチは GNU では使用できますが、grep
POSIX 標準では使用できません。
sed
GNUがない場合に役立つ簡単な解決策は次のとおりですgrep
。
sed -n '/&/!N;/&/p' your_file
どのように動作しますか?
- この
-n
スイッチは基本的な「印刷」操作を抑制します。sed
/&/!N
意味:現在の行にその行がない場合は、&
パターンスペースに次の行を追加します。/&/p
意味:&
パターンスペースを一致させて印刷します。