私は次のスクリプトを書いています:
v="1,pop";
sed "$v/d" dir/file1
それは私にこのエラーを与えます:
char 3: unexpected `,'
これを解決する方法は?注:の値は$v
制御できません。
sed
間違った方法で使用しています。
$ v="1,pop";
$ cat file
1,pop
Suku
JohnGeorge
stackoverflow
serverfault
$ sed '/'$v'/d' file
Suku
JohnGeorge
stackoverflow
serverfault
$ sed "/"$v"/d" file
Suku
JohnGeorge
stackoverflow
serverfault
内部でbash変数を置き換えたい場合はsed
、上で示したように引用符で囲む必要があります。また、ファイルに変更を書き込みたい場合は、で使用する必要がありsed
ます-i
。
スクリプトでこの方法を使用する
v = "1、pop"
sed "/ ^ $ v $ / {
d
} "dir / file1
シェルがスクリプトの実行方法を認識できるように、ハッシュバンが必要です。
#!/bin/sh
その後、あなたは得るでしょう...
sed:1: "1、pop / d":予想されるコンテキストアドレス
...コマンドが実行されたことを示します。:)