job.shスクリプトには次の文字列があります。
/home/myname/code_DEM/ > output.txt
代わりに、以下を使用したいと思います。
/home/myname/code_DEM/ > output_"$datetime".txt
ここで、 $datetime は日付と時刻を自動的にロードする文字列です。
これを行うには、sedコマンドを使用してみました。
sed -i 's/"$LINEout"/"$LINEnew"/' job.sh
$LINEout
置き換えたい古い文字列はどこにあり、$LINEnew
新しい文字列(日付と時間がある文字列)はどこにありますか?
これまで私は私が欲しいものを手に入れなかったし、何も変わらなかった。
PS:LinuxとMacOで動作するソリューションがあれば良いでしょう。 sedコマンドの構文は、LinuxごとにMacで少し異なると思います。 :)
ベストアンサー1
この試み:
sed -i "s|$LINEout|$LINEnew|" job.sh
macOSでバックアップを指定する必要がある場合は、次のものを使用する必要があります。
sed -i "" "s|$LINEout|$LINEnew|" job.sh
例:
echo "foo
bar" > sample
cat sample
foo
bar
rep=bar
sed -i.bak "s|$rep|baz|" sample
cat sample
foo
baz
cat sample.bak
foo
bar
macOS X 10.11.6とBSD sedでテスト済み