디렉터리에는 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)
위의 내용은 파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다.