Mac 터미널의 폴더에 있는 여러 파일에 대해 동일한 명령을 실행하는 방법은 무엇입니까? 이러한 파일의 이름은 24538_7#1.fq
, 24538_7#2.fq
등과 유사합니다 .24538_7#3.fq
24538_7#4.fq
명령은 다음과 같습니다:
sed -n '\|@.*/1|{N;N;N;p;}' 24538_7#2.fq > 24538_7#2_paired1.fq
sed -n '\|@.*/2|{N;N;N;p;}' 24538_7#2.fq > 24538_7#2_paired2.fq
파일 이름에는 카운터가 포함되므로 당연히 파일 이름을 변경해야 합니다.
명령을 작성하려고 하는데 파일 이름을 바꾸는 데 멈췄습니다. 이 명령에 대한 나의 노력은 다음과 같습니다.
for file in 24538_7#*.fq; do sed -n '\|@.*/1|{N;N;N;p;}' "$file" > "${file/fq/fq}"; done
(PS-저는 MacOS를 사용합니다)
답변1
모든 파일의 이름이 비슷하다고 가정하면 다음을 사용할 수 있습니다.
for file in 24538_7#*.fq; do
sed -n '\|@.*/1|{N;N;N;p;}' "$file" > "${file%.fq}_paired1.fq"
sed -n '\|@.*/2|{N;N;N;p;}' "$file" > "${file%.fq}_paired2.fq"
done
또는 (이미 시도한 내용에 따라)
for file in 24538_7#*.fq; do
sed -n '\|@.*/1|{N;N;N;p;}' "$file" > "${file/.fq/_paired1.fq}"
sed -n '\|@.*/2|{N;N;N;p;}' "$file" > "${file/.fq/_paired2.fq}"
done
경고하다: 이는 특정 사례 및 특정 파일 이름에만 적용됩니다.