私のタイトルは">"で始まり、最初の単語を保持し、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
似ているを使って答えawk
例cut
:
cut -d' ' -f 1 input.txt > output.txt
この-d
オプションは区切り文字を空白に設定し、-f
最初のフィールドを選択します。
ただし、以下を使用することもできますsed
。
sed 's,^\([^ ]\+\) .*,\1,' input.txt > output.txt
このコマンドは式を置き換えます。行の先頭を見つけ、各文字を空でないバッファにコピーします。また、スペースやその他の文字とも一致します。sed
この行をバッファの内容に置き換えます。