Explicación detallada de los comandos de una sola línea en el tutorial de aprendizaje de Perl

prefacio

Este artículo presenta principalmente el contenido relevante sobre los comandos de una sola línea de Perl y lo comparte para su referencia y estudio. No diré mucho a continuación, echemos un vistazo a la introducción detallada.

Parámetros de Perl relacionados con One-Liner

  • -a Modo de división automática, separe $ con espacios y guarde en @F, es decir, @F=split //, $
  • -F especifica el delimitador de -a
  • -l Muerde automáticamente el contenido de entrada y agrega automáticamente saltos de línea al contenido de salida
  • -n es equivalente a mientras(<>)
  • -e Ejecuta el comando, es decir, el script.
  • -p bucle automático + salida, es decir while(<>){comando (script); imprimir;}

Recuerde los parámetros anteriores, casi puede comenzar a usar Perl para escribir comandos de una línea.

Lo anterior es la versión breve, la imagen a continuación puede considerarse como la versión completa.

Según el siguiente ejemplo, comprenda Perl en una línea.

1. Formato básico: archivo de entrada de 'comando' de parámetro perl

2. perl -ePara los parámetros que se deben escribir.

3. perl -pe Se puede usar para leer cada línea del archivo, procesarlo de acuerdo con el comando dado y finalmente generarlo, por ejemplo, reemplazar aaa en el archivo 1.txt con AAA.

1

perl -pe 's/aaa/AAA/g' 1.txt

4. El parámetro perl -l casi puede coincidir con n en lugar de while(<>){chomp;}la sintaxis que suele utilizar perl.

5. Si necesita procesar el contenido de cada línea del archivo separado por tabulaciones, entonces perl -alneel parámetro es casi necesario, por ejemplo, equivale while(<>){chomp;@F=split /\s+/,$_;print "$F[0]\n"}a

1

perl -alne 'print $F[0]'

6. No es necesario declarar previamente las variables en el script de comando de una sola línea de Perl. Si desea imprimir cada línea en blanco y cada línea comienza con el número de líneas

1

perl -ne 'print ++$a." $_" if /./'

7. Los comandos de una sola línea de Perl a veces son mejores que los comandos de shell como sed/grep debido a su excelente coincidencia regular. Por lo general, la coincidencia simple puede ser la siguiente: el número de línea en la coincidencia, imitando la función de grep -c:

1

perl -lne '$a++ if /regex/; END {print $a+0}'

8. Los comandos de una sola línea de Perl pueden usar módulos de Perl, como los módulos que usan la función de suma:

1

perl -MList::Util=sum -alne 'print sum @F'

9. Perl también puede usar el comando FINALIZAR como awk, como imprimir el número total de palabras en el archivo.

1

perl -alne '$t += @F; END { print $t}'

10. Perl también puede utilizar map{}otras funciones, como imprimir el número total de palabras coincidentes.

1

perl -alne 'map { /regex/ && $t++ } @F; END { print $t }'

11. Se puede decir que el comando de una sola línea de Perl utiliza la simplicidad de Perl al extremo, como imprimir la línea coincidente:

1

perl -ne '/regex/ && print'

12. Los comandos de una sola línea de Perl pueden usar expresiones regulares con tanta flexibilidad como Perl.

1

perl -ne 'print if /^\d+$/'

Los ejemplos anteriores son todos de http://www.catonmat.net/blog/perl-one-liners-explained-part-one/

Aquellos de nosotros que usamos Perl para procesar datos, conocer un poco de Perl en una línea puede reducir efectivamente el tiempo para escribir comandos repetidos, especialmente aquellos scripts que no se usarán después de 1 o 2 veces, especialmente en el sistema de ventanas donde es inconveniente use comandos de shell cuando.

PD: Por supuesto, también puedes usar git para simular el entorno de comandos de Unix en el sistema Windows ~~~~

En definitiva, es bastante adecuado para el aprendizaje y para usos múltiples.

 

Supongo que te gusta

Origin blog.csdn.net/jh035/article/details/128141609
Recomendado
Clasificación