Mac端末のフォルダにある複数のファイルに対して同じコマンドを実行するには?

Mac端末のフォルダにある複数のファイルに対して同じコマンドを実行するには?

Mac端末のフォルダにある複数のファイルに対して同じコマンドを実行するには?これらのファイルの名前は24538_7#1.fq24538_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

(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

警告する:これは特定のケースと特定のファイル名にのみ適用されます。

おすすめ記事