awk转换" {(换行)"只是" {"

时间:2015-08-11 17:52:25

标签: awk

我想使用awk转换" {(linefeed)"只是" {"

我试过没有成功

awk '{gsub("{\n", "{")} input >output;

任何合理的描述性解决方案......?

2 个答案:

答案 0 :(得分:1)

使用GNU awk进行多字符RS,让您一次读取整个文件:

awk -v RS='^$' -v ORS= '{gsub(/{\n/, "{")} 1' input >output

答案 1 :(得分:0)

您的问题是,与perl不同,记录分隔符不会出现在记录中。

如果该行上的最后一个字符是开括号,则不使用换行符打印,否则使用换行符打印。

awk '/{$/ {printf "%s", $0; next} 1' file

或,

awk '{printf "%s%s", $0, /{$/ ? "" : ORS}' file