Mic*_*ant 6 shell bash sed shell-script replace
我有一个包含xx以下内容的文件:
@base_url = "http://dmstaffing-stage.herokuapp.com/"
Run Code Online (Sandbox Code Playgroud)
我想用 sed 来消除这一行(什么都不用替换)。我已经成功地将这种 sed 技术与其他几行一起使用,例如
sed -i 's/require "selenium-webdriver"//' xx
Run Code Online (Sandbox Code Playgroud)
但是我对 @base_url 行的尝试不起作用。我怀疑 http:// 中的 " 或 // 弄乱了它,但我似乎无法修复!
我试过了:
$ sed 's/@base_url = "http://dmstaffing-stage.herokuapp.com/"//' xx
sed: -e expression #1, char 23: unknown option to `s'
$ sed 's/@base_url = \"http://dmstaffing-stage.herokuapp.com/\"//' xx
sed: -e expression #1, char 24: unknown option to `s'
$ sed 's/@base_url = "http:\/\/dmstaffing-stage.herokuapp.com/"//' xx
sed: -e expression #1, char 58: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)
但没有一个工作。
如前所述,使用其他分隔符或转义斜杠。您的最后一次尝试错过了最后一个斜线的转义。
正如@StephaneChazelas所指出的,escapedot也是如此。
并且,如果不需要,包括@terdonsed;grep -Fxv,其中-F是固定字符串,而不是正则表达式,将是一个选项。-x确保它匹配整行。-v反转。
一个简单(非常简单)的基准测试time -v似乎很受欢迎sed。(GNU 变体。)
sed 's/@base_url = "http:\/\/dmstaffing-stage\.herokuapp\.com\/"//' xx
Run Code Online (Sandbox Code Playgroud)
要完全删除它(不留空行),请使用:
sed '/@base_url = "http:\/\/dmstaffing-stage\.herokuapp\.com\/"/d' xx
|
+--- Delete
Run Code Online (Sandbox Code Playgroud)