修复标题和打印

修复标题和打印

我的标题以“>”开头,我想通过保留第一个单词并删除 output.txt 中显示的其他单词来修复标题并打印它

输入.txt

>AGAJ01065549.1 scaffold:Xipmac4.4.2:AGAJ01065549.1:1:500:1 REF
CGCCAGGTGTCTGGCGTAATAGCGCCAGCGCCAGGTGTCATATACGTAATAGCGCCAGGT
>RGAMMT01065456.1 scaffold:Xipmac4.4.2:AGAJ01065595.1:1:500:1 REF
GACTAGTTTTTACATATAGTAATGGTTATTCGGAAGTGTACAGACGTTTTCAGGTTTTTT
TTTGGTAGGGGTTGAGGTGTTGAGGTGAGGGGACTATGTGGAGGGAACTTTCCATAGAGG

输出.txt

>AGAJ01065549.1 
CGCCAGGTGTCTGGCGTAATAGCGCCAGCGCCAGGTGTCATATACGTAATAGCGCCAGGT
>RGAMMT01065456.1 
GACTAGTTTTTACATATAGTAATGGTTATTCGGAAGTGTACAGACGTTTTCAGGTTTTTT
TTTGGTAGGGGTTGAGGTGTTGAGGTGAGGGGACTATGTGGAGGGAACTTTCCATAGAGG

答案1

这可能对你有用(GNU sed):

sed -i '/^>/s/\s.*//' file

答案2

您可以通过 awk 管道传输文本来完成此操作

awk '{print $1}' input.txt

这将打印出每行的第一个条目(条目之间用空格分隔)。

答案3

类似于回答使用awkcut

cut -d' ' -f 1 input.txt > output.txt

-d选项将分隔符设置为一个空格并-f选择第一个字段。

但是您也可以使用sed

sed 's,^\([^ ]\+\) .*,\1,' input.txt > output.txt

该命令替换一个表达式。它查找行的开头并将每个字符复制到不是空白的缓冲区中。此外,它匹配空格和任何其他字符。sed将这一行替换为缓冲区内容。

相关内容