可以使用 sed 命令来实现:

sed -n '/^Chr/{:start /^Chr/{p;b};N;b start};$p' 文件名

解释一下:

  • -n 选项表示只输出匹配到的行,不输出其他行;
  • /^Chr/ 表示匹配以 Chr 开头的行;
  • {:start ...} 表示一个循环,start 是一个标签,用于后面跳转;
  • /^Chr/{p;b} 表示如果匹配到以 Chr 开头的行,则输出该行,然后跳转到循环结束(即最后一个 Chr 开头的行);
  • N;b start 表示将非 Chr 开头的行和前面的 Chr 开头的行合并成一行,并跳转到循环开始继续执行;
  • $p 表示最后一个 Chr 开头的行单独处理,直接输出;

注意:由于 Linux 中换行符是 \n,因此合并后的行可能会很长,建议使用 less 命令或者分页工具查看。

Linux 中合并 Chr 开头行的文本处理技巧

原文地址: https://www.cveoy.top/t/topic/odYW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录