bashコマンドを使用して複数のファイルの文字列を検索して置き換えたいと思います。私は実際に慣れていないsed
を使用しています。sedを使用して複数のファイルに文字列を置き換えます
マイ変数:
$FILE = (/home/user/file1.txt, /home/user/file2.txt)
$REL = 5.0
マイコード:
for f in ${FILES[@]}; do sed -i "$f" "s/__ver__ =*/__ver__=$REL/g";
出力:
sed: -e expression #1, char 2: unknown command: `/'
sed: -e expression #1, char 2: unknown command: `/'
私の表現が間違っていますか?
ファイル内に '__ver__ ='が複数存在する可能性がありますか? – RomanPerekhrest
@RomanPerekhrestいいえ、1つだけです。 – diegus
あなたは 'FILE'を割り当てようとしますが(' $ 'は存在しないので失敗しますが)、' FILES'を使用しようとします。実際には、プライベート変数には大文字も使用しないでください。実際には、最初に変数にファイル名を入れる理由はありません。同様に、 'REL = 5.0'をドル記号なしで、等号のまわりにスペースを入れないようにします。 – tripleee