1

私は次のスクリプトを書いています:

v="1,pop";
sed "$v/d" dir/file1

それは私にこのエラーを与えます:

char 3: unexpected `,'

これを解決する方法は?注:の値は$v制御できません。

4

3 に答える 3

1

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

于 2013-01-21T06:08:06.833 に答える
0

スクリプトでこの方法を使用する

v = "1、pop"

sed "/ ^ $ v $ / {

d

} "dir / file1

于 2013-01-21T09:33:15.437 に答える
-1

シェルがスクリプトの実行方法を認識できるように、ハッシュバンが必要です。

#!/bin/sh

その後、あなたは得るでしょう...

sed:1: "1、pop / d":予想されるコンテキストアドレス

...コマンドが実行されたことを示します。:)

于 2013-01-21T04:55:21.423 に答える