텍스트의 다른 모든 줄에 문자 추가

텍스트의 다른 모든 줄에 문자 추가

수백만 개의 제목이 있는 단락(일명 단락)이 포함된 거대한(~20G) 텍스트 파일이 있습니다. 제목과 단락은 항상 각각 한 줄을 차지합니다. 예를 들어,

햇빛
화창한 날입니다.
어둠
동굴은 어두운 곳이다.

내가 생각해내려고 하는 것은 텍스트를 반복하고 각 제목 앞에 ">"를 추가하는 터미널 명령입니다.홀수 행(라인 1, 3, 5...) 예를 들어,

>Sunshine
화창한 날이었습니다.
>어둠
동굴은 어두운 곳이다.

어떤 아이디어가 있나요?

해당되는 경우: 위의 텍스트는 단지 예일 뿐입니다. 대부분의 헤더는 MD5 다음에 DNA 서열("단락")이 옵니다.

0002ebd9ca12d6b69dfc3066356fc299
CATTAACCATTGGATAACCTTCGGGTATCCCATCCGTGTCTACATACTCTTGTTGCTTTGGCAGGCCGTGGTCACACACTGTGGGCTATGCCTGCATGTGCCTGCCAGAGGACCA

...로 변환하려고 합니다.

>0002ebd9ca12d6b69dfc3066356fc299
CATTAACCATTGGATAACCTTCGGGTATCCCATCCGTGTCTACATACTCTTGTTGCTTTTGGCAGGCCGTGGTCACACACTGTGGGCTATGCCTGCATGTGCCTGCCAGAGGACCA

답변1

GNU를 사용하여 첫 번째 줄부터 시작하여 한 줄씩(또는 한 줄씩) 편집하려면 sed다음을 수행하세요.

sed '1~2초/^/>/'당신의 파일

그러면 수정된 파일이 표준 출력에 기록됩니다. 즉, 입력하면오직위에서 수정된 파일이 화면에 표시됩니다. 새 파일에 넣으시면 됩니다출력 리디렉션예 를 들어 >,

sed '1~2초/^/>/'당신의 파일 > 새 문서

또는 기존 파일을 수정하려면 다음을 사용하십시오 -i.

sed-나'1~2초/^/>/'당신의 파일

답변2

POSIX적으로:

sed 's/^/>/;n' < file.in > file.out

답변3

또 다른 POSIX 답변:

paste -d'>\n' /dev/null - - <infile

얻다:

>Sunshine
This is a sunny day.
>Darkness
A cave is a dark place.

답변4

awk이런 식으로 시도해 볼 수 있습니다 .

awk 'NR % 4 == 1 {sub(/^/,">")} {print}' filename

인용하다

https://stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line

관련 정보