GNU/Linux >> Linux の 問題 >  >> Linux

`cut`でファイルを変更しますか?

man ページは私に多くの希望を与えませんが、それが文書化されていない(および/またはGNU固有の)機能であることを望んでいます。

承認された回答:

できません。 ed、GNU sed、perlを使用するか、コンテンツの新しいファイルを作成するという舞台裏で行うことを実行します。

ed 、ポータブル:

ed foo <<EOF
1,$s/^([^,]*),([^,]*),([^,]*).*/1,3/
w
q
EOF

GNU sed

sed -i -e 's/^([^,]*),([^,]*),([^,]*).*/1,3/' foo

Perl:

perl -i -l -F, -pae 'print @F[1,3]' foo

カット 、新しいファイルを作成します(スクリプトが中断された場合は、再度実行できるため、推奨されます):

cut -d , -f 1,3 <foo >foo.new &&
mv -f foo.new foo

カット 、ファイルを所定の場所に置き換えます( fooの所有権と権限を保持します 、ただし中断に対する保護が必要です):

cp -f foo foo.old &&
cut -d , -f 1,3 <foo.old >foo &&
rm foo.old

cutのいずれかを使用することをお勧めします ベースのメソッド。そうすれば、非標準のツールに依存せず、仕事に最適なツールを使用でき、割り込み時の動作を制御できます。


Linux
  1. ファイルの変更または変更として何がカウントされますか?

  2. 誰がChmodを実行できるかを変更しますか?

  3. Rsync〜/ foo Target / fooはRsync〜/ foo / Target / foo /と同じですか?

  1. ファイルのアクセス許可を変更する

  2. chmodを使用してファイルのパーミッションを変更するにはどうすればよいですか?

  3. ファイル属性を変更するための chattr コマンドの例 (ファイルを不変にする)

  1. Linux でのファイル変更時にプロセスを再起動する

  2. Bash でファイル拡張子を再帰的に変更する

  3. ファイルを変更不可にするにはどうすればよいですか?