내 제목은 ">"로 시작하며 첫 번째 단어를 유지하고 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
이 줄을 버퍼 내용으로 바꾸세요.