如何在 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

警告:这仅适用于您的特定情况和特定文件名。

相关内容