
Como posso executar o mesmo comando no terminal mac para vários arquivos em uma pasta? Os arquivos são nomeados como 24538_7#1.fq
, 24538_7#2.fq
, e assim por diante 24538_7#3.fq
.24538_7#4.fq
Os comandos são:
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
Como o nome do arquivo envolve um contador, obviamente os nomes dos arquivos precisam ser alterados.
Eu estava tentando escrever o comando, mas não consegui renomear o arquivo. Meu esforço para o comando está abaixo:
for file in 24538_7#*.fq; do sed -n '\|@.*/1|{N;N;N;p;}' "$file" > "${file/fq/fq}"; done
(PS- eu uso MacOS)
Responder1
Supondo que todos os arquivos tenham nomes semelhantes, você pode usar
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
ou (para desenvolver o que você já tentou)
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
Aviso: Isso funcionará apenas para sua situação específica e para nomes de arquivos específicos.