匹配模式包括换行符与 OS X (BSD) sed
Matching pattern including newline with OS X (BSD) sed
我想在 OSX 上使用 sed 匹配以下模式:
test = {
和
test =
{
我尝试了很多不同的方法,包括下面这行,但我不明白为什么它不起作用:
sed -n -E -e "s/(^[a-zA-Z_]*[ ]*=[ "'\'$'\n'"]*{.*)/var /p" $path
我在 Internet 上阅读许多帖子时使用了引号 $'\n' 来匹配换行符并在其前面包含了一个反斜杠。如果我不使用任何 ( 或 [ 组,它确实有效,但我想使用这些组。我不断收到以下错误:
sed: 1: "s/(^[a-zA-Z_]*[ ]*=[ \
...": unbalanced brackets ([])
谁能帮帮我?我快绝望了。
这应该取决于您的确切数据
sed '/[[:alpha:]]* =/{/ *{/!N;//s/^/var /;}' file
输入
test = {
blah
test =
{
wut
输出
var test = {
blah
var test =
{
wut
我想在 OSX 上使用 sed 匹配以下模式:
test = {
和
test =
{
我尝试了很多不同的方法,包括下面这行,但我不明白为什么它不起作用:
sed -n -E -e "s/(^[a-zA-Z_]*[ ]*=[ "'\'$'\n'"]*{.*)/var /p" $path
我在 Internet 上阅读许多帖子时使用了引号 $'\n' 来匹配换行符并在其前面包含了一个反斜杠。如果我不使用任何 ( 或 [ 组,它确实有效,但我想使用这些组。我不断收到以下错误:
sed: 1: "s/(^[a-zA-Z_]*[ ]*=[ \
...": unbalanced brackets ([])
谁能帮帮我?我快绝望了。
这应该取决于您的确切数据
sed '/[[:alpha:]]* =/{/ *{/!N;//s/^/var /;}' file
输入
test = {
blah
test =
{
wut
输出
var test = {
blah
var test =
{
wut