Especificación del archivo para procesar en Perl de una sola línea

Resuelto ikegami asked hace 7 años • 1 respuestas

Me dieron una frase de Perl. Tiene la siguiente forma:

perl -pe'...'

¿Cómo especifico el archivo para procesar en el programa?

ikegami avatar Jan 19 '17 20:01 ikegami
Aceptado

La documentación sobre cómo iniciar perlse 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 -execcláusula debería aparecer tal cual.


Nota: Algunas frases ingeniosas utilizan -nimpresiones explícitas en lugar de -p. Todo lo anterior se aplica también a estos.

ikegami avatar Jan 19 '2017 13:01 ikegami