如何使用awk将当前行内容追加至前一行(NR-1)?
合并单行文本到前一行的awk方案
直接用awk命令就能完成需求,把字段数为1的单行内容追加到前一行末尾:
NR>1 && NF==1 { printf " %s", $0; next } { if (NR>1) print ""; printf "%s", $0 } END { print "" }
命令逻辑说明
- 当处理的不是第一行且当前行仅含1个字段时,以空格开头输出当前行内容(追加到前一行),然后跳过后续步骤
- 对于含多个字段的行,先判断如果不是第一行就输出换行(结束上一行的内容),再打印当前行内容
- 最后通过
END块输出一个换行,保证文件结尾格式正确
输入示例
Company Name LLC Company Name2 LLC Very Good company name but rolls over
输出结果
Company Name LLC Company Name2 LLC Very Good company name but rolls over
内容的提问来源于stack exchange,提问作者Jason Aruni
相关产品推荐
相关产品推荐

