Bash

如何在 mac 終端中為文件夾中的多個文件執行相同的命令?

  • June 3, 2018

如何在 mac 終端中為文件夾中的多個文件執行相同的命令?文件命名為24538_7#1.fq24538_7#2.fq24538_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)

假設所有文件的名稱都相似,您可以使用

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

警告:這僅適用於您的特定情況和特定文件名。

引用自:https://unix.stackexchange.com/questions/447171