Especificación del archivo para procesar en Perl de una sola línea
Me dieron una frase de Perl. Tiene la siguiente forma:
perl -pe'...'
¿Cómo especifico el archivo para procesar en el programa?
Aceptado
La documentación sobre cómo iniciar perl
se encuentra en la página de manual de perlrun .
perl -pe'...' -i~ file [file [...]] # Modifies named file(s) in place with backup.
perl -pe'...' -i file [file [...]] # Modifies named file(s) in place without backup.
perl -pe'...' file.in >file.out # Reads from named file(s), outputs to STDOUT.
perl -pe'...' <file.in >file.out # Reads from STDIN, outputs to STDOUT.
Si el nombre del archivo puede comenzar con -
, puedes usar --
.
perl -pe'...' [-i[~]] -- "$file" [...]
Si desea modificar varios archivos, puede utilizar cualquiera de los siguientes:
find ... -exec perl -pe'...' -i~ {} + # GNU find required
find ... | xargs -r perl -pe'...' -i~ # Doesn't support newlines in names
find ... -print0 | xargs -r0 perl -pe'...' -i~
En todo lo anterior, los corchetes ( []
) indican algo opcional. No deberían aparecer en el comando real. Por otro lado, el {}
contenido de la -exec
cláusula debería aparecer tal cual.
Nota: Algunas frases ingeniosas utilizan -n
impresiones explícitas en lugar de -p
. Todo lo anterior se aplica también a estos.