Bash 用括号替换括号和换行符

Bash 用括号替换括号和换行符,bash,shell,awk,sed,Bash,Shell,Awk,Sed,如果换行符之前的最后一个字符是左括号,我想删除它。因此: one two( three 应成为: one two(three one two(three 我用awk和sed做了一些尝试,但没有成功: awk '/\($/ {printf "%s ", $0} {print; next}' sed 's/($/(/g' 使用gnu-sed可以执行以下操作: sed '/($/{N;s/\n//;}' file 或使用awk: awk '/\($/{p=$0; getline; pr

如果换行符之前的最后一个字符是左括号,我想删除它。因此:

one
two(
three
应成为:

one
two(three
one
two(three
我用awk和sed做了一些尝试,但没有成功:

 awk '/\($/ {printf "%s ", $0} {print; next}'
 sed 's/($/(/g'

使用
gnu-sed
可以执行以下操作:

sed '/($/{N;s/\n//;}' file

或使用
awk

awk '/\($/{p=$0; getline; printf "%s", p} 1' file


使用
gnu-sed
可以执行以下操作:

sed '/($/{N;s/\n//;}' file

或使用
awk

awk '/\($/{p=$0; getline; printf "%s", p} 1' file

使用awk:

正则表达式:
\(\n
替换为:

它打印:

使用awk:

正则表达式:
\(\n
替换为:

它打印:


那是赢家。起初我以为我们要删除
”(“
”,但你答对了问题的第2部分。两个都试过了,像丝绸一样光滑。干杯!那是赢家。最初我以为我们要删除
(“
,但是你把问题的第二部分搞定了。两个都试过了,像丝绸一样光滑。干杯!使用
getline
just do
awk'/\($/{if(getline nextl>0)$0=$0“nextl}1”文件
使用
getline
just do
awk'/\($/{if(getline nextl>0)$0=$0“nextl}1”文件
one
two(three
awk '/^t/{printf $0}NR==1;END{print ""}' file

one
two(three