フォルダー内の複数のファイルに対して Mac ターミナルで同じコマンドを実行するにはどうすればよいですか?

フォルダー内の複数のファイルに対して Mac ターミナルで同じコマンドを実行するにはどうすればよいですか?

フォルダー内の複数のファイルに対して Mac ターミナルで同じコマンドを実行するにはどうすればよいですか? ファイルの名前は24538_7#1.fq、、、など24538_7#2.fqです。24538_7#3.fq24538_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

(追記:私は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

警告: これは、特定の状況と特定のファイル名に対してのみ機能します。

関連情報