탭으로 구분된 파일

탭으로 구분된 파일

아래와 같이 seq 파일이 있습니다.

ATCGTTTCTCAGCCTTTTGGCAAGACCAAGTGTAGTATCTGTTCTTATCAGATATTGGTATCTGCAGGCACTCCTGGAACCAAT
ATCACTTCTCAACCTTTTGACTAAGATCAAGTGTAATATCTATCTTTATCAGTTTAATATCTGAGATCTCCTTTATCTGAGGACAATATATTTAATGGATTTTTGGAACAGAGAGAAGGAATAGGAGCTTGTCCTGTCCACTCCATGCATTGACCTGGTATTGCAGGACCTCCAGAAACACCACCCCCTCC
ACGCATTATCCGCCTATTGGCTAAAAACAAATGTAGTATCTGTTCCTATCAGTTAAAGCATCAAATGTGGTCTCTAAGTTCAGGGAATTAAATTAATATTTGGAATTGGGAGATGGTTTGGGAGCTTGCTCTATCCTCTCCATGCCTCAGCATGTAATTGCAATGCTTTCAGGAGTGGTGCATTCCTT

3줄이 있습니다. 각 줄의 각 문자를 탭으로 구분한 다음 다른 파일에 저장하고 싶습니다. 나는 무엇을 해야 합니까?

답변1

귀하의 의도를 올바르게 이해했다면 다음을 수행하십시오.

sed -e 's/./&\t/g' -e $'s/\t$//' file

두 번째 교체는 줄 끝의 탭을 제거합니다.

답변2

다음을 사용하여 이 작업을 수행해 보세요.:

perl -ne 'print join "\t", split //' file > new_file

답변3

존재하다 awk:

awk -F '' -vOFS='\t' '{$1=$1}1' file > new_file

{$1=$1}1이 관용어를 빌려왔습니다답변다른 질문 중 하나입니다.

이렇게 하면 필드 구분 기호가 비어 있음( -F '')으로 설정됩니다. 이는 각 레코드가 문자 단위로 읽혀진다는 의미입니다. 출력 필드 구분 기호는 탭( -vOFS='\t')으로 설정되어 있으며, (내가 아는 한) 관용구 {$1=$1}1는 작동하지 않습니다. 이는 모든 필드가 인쇄되기 전에 모든 두 필드 사이에 삽입을 일으키는 부작용이 있습니다 awk.OFS

답변4

나는 당신이 fold이것을 시도해야한다고 생각합니다 :

tr \\n \\r <infile | fold -w1 | tr '\r\n'  '\n\t' >outfile

스트림 내의 ewline 문자를 반환으로 대체하여 fold입력을 전처리하고 있습니다 . 입력의 각 열(각 대문자)에 대해 하나의 ewline 문자를 인쇄하지만 반환 시 카운터를 재설정하므로 최종 후처리에서 ewline을 abs로 변환할 때 출력에 추가 ab 문자가 없습니다. 출력은 세 줄입니다. 각 문자 뒤에는 ab 문자가 오지만 각 줄의 마지막 문자입니다.tr\n\rfold\n\rtrfold\n\t\t\t

관련 정보