You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何将txt文件中每组非缩进行与后续缩进行拼接为单行

解决方案

你可以用以下任意一种方法实现需求:

方法1:使用awk(推荐,兼容性好,逻辑清晰)

执行如下命令:

awk 'NR%2==1 {prev = $0; next} {gsub(/^[[:space:]]+/, "", $0); print prev, $0}' your_file.txt

命令说明:

  • NR%2==1:判断当前是奇数行(每组的第一行),将行内容存入prev变量后直接跳过后续处理
  • 处理偶数行(每组的第二行)时,先用gsub(/^[[:space:]]+/, "", $0)删除行首的所有缩进空白(包含空格、制表符)
  • 最后将保存的上一行内容和处理后的当前行拼接输出,默认用空格分隔,符合预期格式

方法2:使用paste+sed组合

你之前的paste命令参数设置错误,正确用法如下:

paste -d ' ' - - < your_file.txt | sed -E 's/ +/ /g'

命令说明:

  • paste -d ' ' - -:每次读取两行内容,用空格作为分隔符合并为一行
  • 后续的sed命令将连续的多个空格(来自第二行的缩进)替换为单个空格,得到规整的输出

内容的提问来源于stack exchange,提问作者lana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:09:03