【问题标题】:replace any line that starts with the symbol @ using sed, awk, cut使用 sed、awk、cut 替换任何以符号 @ 开头的行
【发布时间】:2015-03-21 03:59:03
【问题描述】:

这很简单,但我希望有一个快速命令(最好使用 sed、cut、awk 或 BASH 中的其他东西)来执行此操作:

替换任何以符号@开头的行:

@<text, on one line, including numbers, letters and colons>

@<text, on one line, including numbers, letters and colons>/1

@ 始终保持一致,&lt;text, on one line, including numbers, letters and colons&gt; 发生变化。 (这是面向生物信息学家的 Fastq 格式)。

例子:

@HWI-D00193:58:H73UEADXX:1:1101:1516:2209 1:N:0:ATCACG

改成

@HWI-D00193:58:H73UEADXX:1:1101:1516:2209 1:N:0:ATCACG/1

我知道这很简单抱歉。

【问题讨论】:

  • 在寻找更广泛的问题时遇到了这个问题:如何替换整行,用cat file | sed 's/^.*STRING_TO_BE_REPLACED.*$/LINE_TO_REPLACE_WITH/' &gt;new_file回答here
  • 有趣的是,来这里也是为了寻找FASTQ的转换

标签: bash awk sed cut fastq


【解决方案1】:

使用sed,您可以执行以下操作:

sed "/^@/ s/$/\/1/g" file

这匹配以@ 开头的行,然后在所有匹配行上附加(在末尾替换/1

【讨论】:

  • 非常感谢..对我有用..语法是:“/^@/(匹配任何以@开头的行)s/$/\/1/g”(附加/1)?
  • 是的。它将附加到以@ 开头的任何行。但不会附加到@ 可能出现在除开头以外的其他位置的行。
【解决方案2】:

使用awk

awk '/^@/ {$0=$0"/1"}1' file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2013-05-30
    • 1970-01-01
    • 2020-06-19
    • 2019-11-11
    相关资源
    最近更新 更多