テキストの先頭から最初の空白行までコンテンツを削除しようとしています。
--($:~)-- cat example.txt
pedro
pablo
juan
francisco
emiliano
martin
したがって、次のものを削除します。
pedro
pablo
juan
私は以前試しました:
sed -n '/^/,/^$/ d' example.txt
しかし、うまくいきません。
答え1
あなたはできます
sed -n '/^$/{:l; p; n; b l}' file
正常な出力を抑制します-n
。パターンに一致する最初の空白行に達すると、/^$/
ループを開始して後続のすべての行を印刷します。
答え2
そしてsed
:
sed -n '/^$/,$p' file
または:
sed -e '/^$/,$!d' file
そしてawk
:
awk '/^$/{p++};p' file
答え3
最も近いものksh
(必要ksh93s
以上)を使用すると、次のことができます。
cat <example.txt <#""
答え4
sed -e 1,/^$/c\\ -e '' <infile >outfile
...それも動作します。
1,/^$/d
~とc\
<EOF>
このコマンドは、アドレス範囲を正確に削除するのではなく、d
ブロックc
全体を単一の文字列として一時停止します。したがって、これは出力から最初の空行を削除しません。c
これは、入力時に全文ブロックが最初に表示される部分にかかるためです。(空行の最初の発生に分かれています)空の行に。