如何实现文件相邻两行逐次重叠合并?解决awk命令输出不符合预期问题
相邻行重叠合并实现方法
你需要的是逐行滑动拼接的效果,而非奇偶行两两拼接,用以下awk命令即可实现:
awk 'NR>1{printf "%-11s%s\n", prev, $0} {prev=$0}' input.txt
命令说明
- 逻辑核心是缓存上一行内容,从第二行开始每一行都和上一行拼接输出
%-11s是格式化参数:将上一行内容左对齐,固定占11个字符宽度,空缺位置自动补空格,刚好匹配你示例中的对齐效果;如果需要调整两行的间隔大小,直接修改11这个数值即可,数值越大间隔越宽- 每次处理完当前行,将当前行内容存入缓存变量供下一行使用
原命令失效原因
你之前使用的awk 'NR%2?ORS=FS:ORS=RS'是奇偶行两两合并逻辑,会把第1、2行合并为一行,第3、4行合并为一行,最终输出为Reservoir Dogs、1992 reviewed这类结果,和你需要的逐行滑动重叠逻辑不符,因此无法得到预期输出。
内容的提问来源于stack exchange,提问作者DOS HASAN
相关产品推荐
相关产品推荐

