ファイルのテキスト行を別のファイルに変更したいと思います。例:私が持っているテキスト
エクスポート GEOFIL='/afs/in2p3.fr/home/throng/antares/DETECTOR/r12_c00_s01.det 1 1'
新しいものに交換したい
エクスポート GEOFIL='/pbs/throng/antares/DETECTOR/r12_c00_s01.det 1 1'
これは、現在のディレクトリ内のすべてのファイルに対して実行する必要があります。
答え1
使用sed
コマンド:
sed -i -e 's#/afs/in2p3.fr/home/#/pbs/#' the_filename
メモ:
-i
オプションは、出力と呼ばれるファイルの内容を変更してthe_filename
新しいファイルを作成するために使用されます。#
s
テキストに/
文字が含まれているので、sed コマンドに文字を使用します。
現在のディレクトリ内のすべてのファイルに対して実行するには、次の手順を実行します。
find . -maxdepth 1 -type f -exec sed -i -e 's#/afs/in2p3.fr/home/#/pbs/#' {} \;
メモ:
.
: 現在のディレクトリで作業-type f
:標準ファイルにのみ適用されます。-maxdepth 1
:サブディレクトリではなく、現在のディレクトリ(深さ= 1)でのみ機能します。{}
find
コマンドで見つけたファイル名に置き換えます。\;
-exec
オプションの終わりです。