
¿Cómo puedo ejecutar el mismo comando en la terminal Mac para varios archivos en una carpeta? Los archivos se denominan como 24538_7#1.fq
, 24538_7#2.fq
, etc.24538_7#3.fq
24538_7#4.fq
Los comandos son:
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
Dado que el nombre de archivo implica un contador, obviamente es necesario cambiar los nombres de archivo.
Estaba intentando escribir un comando, pero me quedé atascado al cambiar el nombre del archivo. Mi esfuerzo para el comando está a continuación:
for file in 24538_7#*.fq; do sed -n '\|@.*/1|{N;N;N;p;}' "$file" > "${file/fq/fq}"; done
(PD: uso MacOS)
Respuesta1
Suponiendo que todos los archivos tienen nombres similares, puede 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
o (para aprovechar lo que ya has probado)
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
Advertencia: Esto sólo funcionará para su situación específica y para sus nombres de archivo específicos.