접두사를 기준으로 텍스트 파일을 연결하시겠습니까?

접두사를 기준으로 텍스트 파일을 연결하시겠습니까?

디렉터리에는 1088개 그룹(1088 x 9 = 9792)의 9792개 파일이 있으며 각 그룹에는 고유 ID가 있습니다. 내가 관심 있는 것은 그룹 ID와 접두사로 일치하는 파일만 연결하는 것입니다.

OG00 - 아래에 표시되는 모든 그룹/파일의 접두사

example filenames (with prefix) -
OG000190,OG0012877,OG0012858 .... (1088)

OG0011984
OG0011984._1_1.txt.fa 
OG0011984._1_2.txt.fa 
...
OG0011984._1_9.txt.fa 

OG0011288
OG0011288._1_1.txt.fa
OG0011288._1_2.txt.fa
....
OG0011288._1_8.txt.fa
OG0011288._1_9.txt.fa

OG0011219
OG0011219._1_1.txt.fa
OG0011219._1_2.txt.fa 
.... 
OG0011219._1_9.txt.fa

이는 cat을 사용하여 각 그룹마다 개별적으로 수행할 수 있습니다. 루프를 사용하여 이 프로세스를 자동화하는 방법. 재현할 수 없어 노력했지만 도움이 되었습니다.

     cat *OG0012884. > OG0012884_out.txt
        
        OG0012884._1_1.txt
        OG0012884._1_2.txt
        OG0012884._1_3.txt
        OG0012884._1_4.txt
        OG0012884._1_5.txt
        OG0012884._1_6.txt
        OG0012884._1_7.txt
        OG0012884._1_8.txt
        OG0012884._1_9.txt

답변1

(테스트되지 않은) 다음과 같은 작업을 수행할 수 있는 것 같습니다.

while IFS= read -r pfx; do
    cat "$pfx".* > "/some/other/directory/${pfx}_out.txt"
done < <(printf '%s\n' * | cut -d'.' -f1 | sort -u)

위의 내용은 파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다.

관련 정보