ファイルの行の更新

ファイルの行の更新

いくつかのフィールドを含むファイルがあります。例えば、

var One = "fcb";
var Two = "abc";

どうやってできるかアップデート/交換この行はスクリプトを使用していますか?

私は次のことができるようにしたいです。

   echo -n "Enter One: "
   read  One
   echo -n "Enter Two: "
   read  Two

   sed -i $One ./file.js
   sed -i $Two ./file.js

ただし、スクリプトを実行すると、次のようになります。

Enter One: fge3
Enter Two: ghj5

示す:

sed: -e expression #1, char 1: unknown command: `f'
sed: -e expression #1, char 2: extra characters after command

ベストアンサー1

sed コマンドは次のとおりです。

sed -i -e 's/var One =.*/var One = "'$One'";/' -e 's/var Two =.*/var Two = "'$Two'";/' file.js

以下を追加するように編集されました。

トラップに注意してください...ユーザーがfoo/bar答えのような不快な文字を入力した場合:-)

2番目の編集:

欲しくないなら許可する間違った文字があると中断する可能性があります。たとえば、次のようにread One追加できます。

if [[ "$One" =~ "/" ]]; then echo bad char / not allowed; exit; fi

sedステートメントに別の文字(aの|代わりに/)を選択して無効にすることができます。

それ以外の場合は、賢い引用を試してください。

One=$(echo "$One" | sed 's/\//\\\//g')

おすすめ記事