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,你需要用引号将它括起来,就像我上面显示的那样。此外,如果您想将修改写入文件,则需要使用sedwith -i

于 2013-01-21T06:08:06.833 回答
0

在脚本中使用这种方式

v="1,流行"

sed "/^$v$/{

d

}" 目录/文件1

于 2013-01-21T09:33:15.437 回答
-1

您需要hashbang,以便您的 shell 知道如何执行脚本。

#!/bin/sh

然后你会得到...

sed: 1: "1,pop/d": 预期的上下文地址

...这告诉你命令已执行。:)

于 2013-01-21T04:55:21.423 回答