我在文件中有这个内容:
core = 7.x
base theme = adaptivetheme
release = 7.x-3.x
engine = phptemplate
我想把所有事情都追到:base theme =
到行尾,所以我想得到adaptivetheme
。
基于https://unix.stackexchange.com/a/24151/37309我正在尝试:
sed -n 's/base\stheme\s+=\s//p' file
sed -n 's/base\stheme += //p' file
但它不起作用。不过这确实有效:
sed -n 's/base\stheme = //p' file
那么我做错了什么?我想匹配它,无论可以有多少空格。
答案 0 :(得分:2)
使用-r
- 标志扩展正则表达式支持:
sed -r 's/base\stheme\s+=\s//'
答案 1 :(得分:2)
您可以使用
sed -n 's/base theme \+= //p' file
这表示“一个或多个空格”(这是转义\+
的含义。)
sed
本身仅使用基本的正则表达式(BRE)。如果您想使用extended regex某些规则更改 - 例如需要转义哪些字符。您可以使用-r
标志调用扩展模式。然后+
不再需要转义。
这些正则表达式的方言非常令人困惑。我一直都要自己查一下......