用sed替换ID以外的所有内容

时间:2016-05-03 03:20:13

标签: sed

我想保留第一个ID,然后用sed删除所有内容。 我的行看起来像

  

CAM_READ_0623233309 / library_id = CAM_LIB_002149 / sample_id = CAM_SMPL_003380 raw_id = G9ALM7U02F5HAW长度= 383 / IP_notice =?从CAMERA下载的遗传信息可能被认为是丹麦遗传遗传的一部分,丹麦是获得样本的国家。这些信息的用户同意:1)承认丹麦是提供遗传信息的任何国家的原产国,2)如果他们打算使用,请联系CBD网站(http://www.cbd.int/countries/)上确定的CBD联络点用于商业目的的遗传信息。?

我只想要:

  

CAM_READ_06232333

2 个答案:

答案 0 :(得分:1)

捕获特定序列:

sed -r 's/.*(CAM_READ_[0-9]+).*/\1/' input.txt

sed -e 's/.*\(CAM_READ_[0-9]\+\).*/\1/' input.txt

捕获前面的所有内容,除了空格字符:

sed -r 's/^(\S+).*/\1/' input.txt

答案 1 :(得分:0)

简洁明了的声明:

sed 's/ .*$//'
  • s替代
  • /。* $ /匹配行中第一个空格后的所有内容
  • /无需替换

命令示例:

echo "CAM_READ_0623233309 /library_id=CAM_LIB_002149 blah blah" | sed 's/ .*$//'

命令示例输出:

CAM_READ_0623233309

现在,当然,如果您在同一个文件中有多个不同类型的行,那么您将无法处理此行。但是,您上面的问题并未表明这一点。