0
私は、.txtファイル内の特定の文字列を見つけ、変数で置き換えるスクリプトを実行しようとしています。私は元のファイルを変更するのではなく、コピーを行い、別の(特定の)ディレクトリに移動したいと思います。 (Unixスクリプト/変数からファイル内の文字列を置換し、別のディレクトリに移動
files.txt、 FILE2.TXT
最初のステップは、すべての.txtファイル内の文字列 "文字列1" と "string2の" を見つけて、コピーを行うことです file3.txt:さんは3つの.txtファイルを想定してみましょう例えばtmpファイル)。 もう1つは、変数$ 1と$ 2(tmpファイルを処理中)で文字列を置き換えることです。 それから、すべてを 'directoryname'ディレクトリに移動します。それが必要としてそれは、(別のディレクトリに正しい動き、TMPファイルを実行します)が、sedの機能はほとんど正しく動作しないです
#!/bin/bash
echo "$1 - first parameter"
echo "$2 - second"
configurer() {
for file in *.txt
do
echo "Processing file .... $file"
orig_file=$file
tmp_file=$orig_file.tmp
cp $orig_file $tmp_file
sed "s/string1/$1/g;s/string2/$2/g" $tmp_file
mv $tmp_file directorname/$orig_file
done
}
configurer
echo "Done ..."
と私は見当がつかない:I'vが得たものだ
なぜ。誰か見てみることができますか?
のあなたの部分のための を動作するかどうか私に教えて今、私は「操作を動かす」ことに気付きますOKですが元のファイルを移動します...たとえsed "/ string1/'Mytext'/g; s/string2/Mytext2/g" $ tmp_fileを使用しても、Sed関数は一時ファイルでは実行されません... – bazyl
申し訳ありませんが答えに-iスイッチを追加しました。 pls check –
"string1"をNULL値で置き換えるのは不幸です。出力ファイルの変数からの値の代わりにヌルです:( – bazyl