![Unix 명령을 사용하여 파일에서 >로 시작하는 각 줄 끝에 단어를 추가합니다.](https://linux55.com/image/153171/Unix%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%26gt%3B%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EA%B0%81%20%EC%A4%84%20%EB%81%9D%EC%97%90%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
fasta 형식의 ~25000개 시퀀스가 포함된 텍스트 파일이 있고 각 줄 끝에 >로 시작하는 단어를 추가하고 싶습니다.
답변1
동일한 단어를 일치하는 줄( them 로 시작하는 줄 >
)에 추가해야 하는지 여부를 지정하지 않았으므로 가장 간단한 경우를 가정합니다. 다음은 다음 sed
으로 시작하는 모든 줄 끝에 "PLOP"를 추가합니다 >
.
tmpFile=$(mktemp)
echo -e 'hello world\n>FASTA sequence\nhello again' > "$tmpFile"
echo 'BEFORE :'
cat "$tmpFile"
sed -ri '/^>/ s/^(.*)$/\1 PLOP/' "$tmpFile"
echo 'AFTER :'
cat "$tmpFile"
[ -f "$tmpFile" ] && rm "$tmpFile"
답변2
솔루션앗
awk '{ if ($0 ~ "^>") { $0=$0" added" }} {print $0}' list
또는sed
sed -E "s|^>(.+)$|>\1 added|" list