ファイルに(nx)行がある場合は、行n [RHEL6]にパターンを追加します。

ファイルに(nx)行がある場合は、行n [RHEL6]にパターンを追加します。

次のコマンドは、4行目にパターンを追加します。

sed -i '4i pattern' file

ただし、ファイルに4行未満が含まれていると機能しません。要件は、4行目に空のプレフィックス行を含むパターンを追加する必要があることです。

予想される結果:cat -n file

1  line1
2
3
4  pattern

GNU sed バージョン 4.2.1

ベストアンサー1

少なくとも4行があることを確認するために、いくつかの空白行でファイルを埋めることができます。

{ cat file; echo; echo; echo; } | sed -e '4i pattern' 

後に続く空白行を切り取るには、次のようにパイプできます。

| sed -n 'H; ${g; s/^\n//; s/\n\+$//; p}' 

または

| tac | awk '/./{p=1}p' | tac 

または、最小数の空白行を追加してください。

{ cat file; for ((i=$(wc -l <file); i<3; i++)); do echo; done; } | sed '3a pattern'

sedプログラムは、4行目の前に挿入する代わりに3行目の後に追加するように変更されました。

おすすめ記事