行に含まれる行の後のすべての行を削除しますか? [コピー]

行に含まれる行の後のすべての行を削除しますか? [コピー]

特定の行の後のすべての行を削除したいスクリプトがあります。

コマンドがありますが、ファイル全体が消去されますか?

sed -n '/twm &/q;p' ~/.xinitrc > ~/.xinitrc

変換は次のとおりです。

some line
another line


some other line
twm &
more lines to be deleted
and more

到着

some line
another line


some other line

ベストアンサー1

親プロセス(シェル)がリダイレクトを設定するため今後コマンドの実行sed後、> ~/.xinitrcファイルを読み取る前にファイルが消去されます。

読んで、man sed次のことをしてみてください未テスト:

sed -i.bak  -e "/twm \&/,\$d" ~/.xinintc

これはになります~/.xinitrc.bak

おすすめ記事