我有以下命令
sed '/.*href="\(backup[^"]*tbz\)".*/!d;s//\1/;q'
这适用于我的CentOS安装。
但是当我尝试在FreeBSD 上运行时出现以下错误:
sed: 1: "/.*href="\(backup[ ...": extra characters at the end of d command
(23) Failed writing body
这有什么问题? 谢谢!
答案 0 :(得分:0)
尝试像这样运行:
sed '/.*href="\(backup[^"]*tbz\)".*/\!d;s//\1/;q'
请注意额外的 \ 字符转义!d命令
答案 1 :(得分:0)
显然FreeBSD sed
不喜欢分号作为命令分隔符。请尝试使用多个-e
选项:
sed -e '/.*href="\(backup[^"]*tbz\)".*/!d' -e 's//\1/' -e q
或者换行:
sed '/.*href="\(backup[^"]*tbz\)".*/!d
s//\1/
q'
(是的,这是一个很长的单引号字符串,里面有两个换行符。)