문자열을 "string|string"으로 바꾸세요.

문자열을 "string|string"으로 바꾸세요.

매우 이상한 문제가 있습니다. 일부 생물정보학 계산을 수행하고 있지만 다운스트림 애플리케이션이 현재 형식의 헤더 정보를 허용하지 않습니다. 이 문제를 피하기 위해 fasta 헤더 정보를 수정했습니다. 밝히다:

원래 헤더는 다음과 같습니다: ">abc1"

수정된 헤더는 다음과 같습니다: "">abc1|abc1"

현재 수정된 헤더 파일은 130만 개이며 모두 "abc" 패턴을 따르며 다음 숫자는 연속 번호를 나타냅니다.

내 계산 파일은 대부분 탭으로 구분된 값이지만 이전 헤더 정보가 포함되어 있습니다. awk, sed 또는 이와 유사한 프로그램을 사용하여 130만 건의 "abc1" 발생을 모두 "abc1|abc1"로 자동으로 바꿀 수 있습니까? 분명히 모든 abc2는 abc2|abc2 등입니다.

수정된 헤더 정보로 다시 계산을 하게 되면 꽤 오랜 시간이 걸리기 때문에 헤더 정보가 바뀌었다고 해서 작업을 다시 하고 싶지는 않습니다.

답변1

sed를 이런 식으로 사용할 수 있습니까?

sed -r -e 's/^>(abc[0-9]+)/>\1|\1/g' input.txt > output.txt

보다 정확한 답변을 얻으려면 실제 입력과 예상 출력을 표시하는 것이 좋습니다.

관련 정보