変数に値を置きたいと思います。 sedで使用されている一重引用符のため、以下は機能しません。テキストを変数に置き換えます。
#!/bin/sh
set myvarM='pqr'
sed 's/:P03:M15/:P02:M1$myvarM/' mychange.txt > new_mychange.txt
sedコマンドを変更することはできますか?何か別のものを使用する必要がありますか?ちなみに
変数に値を置きたいと思います。 sedで使用されている一重引用符のため、以下は機能しません。テキストを変数に置き換えます。
#!/bin/sh
set myvarM='pqr'
sed 's/:P03:M15/:P02:M1$myvarM/' mychange.txt > new_mychange.txt
sedコマンドを変更することはできますか?何か別のものを使用する必要がありますか?ちなみに
#!/bin/sh
myvarM='pqr'
sed "s/:P03:M15/:P02:M1$myvarM/" mychange.txt > new_mychange.txt
、その場で交換をする(つまり、新しいファイルを作成しますが、元のファイルを変更しない)、これを実行します。
sed -i '' "s/:P03:M15/:P02:M1$myvarM/" mychange.txt
をこれは、「増分として空白を使用して言います接尾辞」 - すなわちボーン型のシェルでその入力
awk -v val="$myvarM" '{sub(/:P03:M15/, ":P02:M1" val); print}' filename
注と同じファイル名を書き出す( 『/ binに/ SH』)set
コマンドは、位置パラメータを設定します。最初の行はを値myvarM='pqr'
に設定します。myvarM変数は引き続き設定解除されます。
代わりに '' 'を使用すると、変数を展開できるようになります –
ありがとうございました。 – shantanuo