【发布时间】:2017-02-21 18:27:00
【问题描述】:
我想搜索一个文件并将 \1 添加到以 @ 开头的每一行的末尾。一个问题是 grep 不喜欢“\1”。这是文件外观的几行:
@SRR1248080.1 1 length=90
TCTCACTGGCTGACTGAAGGCATGTCTAGTATTCAGAGTTTGCTACGATTTGGTACCGCTTTCGCAGCCC
GCACCGAAACAGTGCTTTACCCCTAGACAGCTCATAGTCAACCGCTGCGCCTCAACGCATTTCGGGGAGA
ACCAGCTAGCTCCGAGTTCGATTGGTATTTCACCCCTAACCACAGCTCATCCGCTGATTTTTCAACATCA
@SRR1249238.1 1 length=173
GCACCGAAACAGTGCTTTACCCCTAGACAGCTCATAGTCAACCGCTGCGCCTCAACGCATTTCGGGGAGA
ACCAGCTAGCTCCGAGTTCGATTGGTATTTCACCCCTAACCACAGCTCATCCGCTGATTTTTCAACATCA
我想读一下:
@SRR1248080.1 1 length=90\1
TCTCACTGGCTGACTGAAGGCATGTCTAGTATTCAGAGTTTGCTACGATTTGGTACCGCTTTCGCAGCCC
GCACCGAAACAGTGCTTTACCCCTAGACAGCTCATAGTCAACCGCTGCGCCTCAACGCATTTCGGGGAGA
ACCAGCTAGCTCCGAGTTCGATTGGTATTTCACCCCTAACCACAGCTCATCCGCTGATTTTTCAACATCA
@SRR1249238.1 1 length=173\1
GCACCGAAACAGTGCTTTACCCCTAGACAGCTCATAGTCAACCGCTGCGCCTCAACGCATTTCGGGGAGA
ACCAGCTAGCTCCGAGTTCGATTGGTATTTCACCCCTAACCACAGCTCATCCGCTGATTTTTCAACATCA
【问题讨论】:
-
sed '/^@/s/$/\\1/' file或awk '/^@/{$0=$0"\\1"}1' file -
至少在sed中,反斜杠一有特殊的含义。它指的是第一次“编号保存”或“注册”或“反向引用”。如果您不定义一个,它将不知道该怎么做。尝试用另一个反斜杠转义反斜杠。