폴더의 여러 파일에 대해 Mac 터미널에서 동일한 명령을 어떻게 실행할 수 있습니까?

폴더의 여러 파일에 대해 Mac 터미널에서 동일한 명령을 어떻게 실행할 수 있습니까?

폴더의 여러 파일에 대해 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

경고: 이는 특정 상황과 특정 파일 이름에만 적용됩니다.

관련 정보