最初から最初の空白行まで内容を削除します。

最初から最初の空白行まで内容を削除します。

テキストの先頭から最初の空白行までコンテンツを削除しようとしています。

--($:~)-- 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これは、入力時に全文ブロックが最初に表示される部分にかかるためです。(空行の最初の発生に分かれています)空の行に。

関連情報