可以使用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开头的行中间的各行合并成一行Chr开头的行保持不变如果并且将最后一个Chr开头的行下面的各行合并成一行最后一个Chr开头的行保持不变Chr1ASCDJSVHUIDSHNGDUHVDVHJKSNUJKDFHDUDSNFJDNSFJJFHJSJKHFChrtestDXVXKJCVBHKXCBVKJBNSJEHFUSHDBNJKBGSHBGKJSBDGKJBSDKFCNJLKHNLJ

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

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