1 bashをしている間、ファイルの最後の3列を削除しようとしました。 head -n -3ファイル>ファイル しかし、ファイルは空になります。私はそれを回避することはできますが、それが何を引き起こすのか知りたいのです。 本当にありがとう! linux bash bash-scripting — ジョン・スパロウ ソース 明確にする:あなたheadはあなたの例で使用されているように質問や行で述べられているように列を削除したいですか? — 1
3 そのコマンドが何をするのかを見てみましょう。 > file これfileは書き込み用に開き、それを切り捨てます。 head -n -3 file これはの最後の3行を除くすべてを読みますfile。はい、file手順1で切り捨てたのと同じです。 — イグナシオバスケス - エイブラムス ソース
2 あなたがやろうとしているのはインライン置換ですが、これは回避策がなければ実際には不可能です。元のファイルは、コマンドを送信したときに既に開かれてクリアされているため、コマンドでは上書きされます。 ここにいくつかのアイデアがあります: 一時ファイルを使用する head -n -3 file > tmp mv tmp file spongefromツールを使用しますmoreutils。これはすべての入力を吸収してからファイルに書き込みます。 head -n -3 file | sponge file — スリック ソース
head
はあなたの例で使用されているように質問や行で述べられているように列を削除したいですか?