首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk将"{(linefeed)“转换为"{”

awk将"{(linefeed)“转换为"{”
EN

Stack Overflow用户
提问于 2015-08-11 17:52:24
回答 2查看 29关注 0票数 2

我想用awk将"{(linefeed)“转换为"{”。

我试过成功

代码语言:javascript
复制
awk '{gsub("{\n", "{")} input >output;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 19:27:48

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

代码语言:javascript
复制
awk -v RS='^$' -v ORS= '{gsub(/{\n/, "{")} 1' input >output
票数 1
EN

Stack Overflow用户

发布于 2015-08-11 18:41:18

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

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

代码语言:javascript
复制
awk '/{$/ {printf "%s", $0; next} 1' file

或,

代码语言:javascript
复制
awk '{printf "%s%s", $0, /{$/ ? "" : ORS}' file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31948652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档