Algunos ejemplos simples pero útiles:
- Establezca la intersección, la unión y la diferencia de los archivos de texto a través de ordenar / uniq: suponga que a y b son archivos de texto que ya están exclusivos. Tenga en cuenta que esto es rápido y funciona en archivos de tamaño arbitrario, hasta muchos gigabytes. (La clasificación no está limitada por la memoria, aunque es posible que tenga que usar -T.) Para comparar, vea cuántas líneas es para escribir una clasificación de combinación basada en disco en Java.
gato ab | ordenar uniq> c # c es una unión b
gato ab | ordenar uniq -d> c # c es una intersección b
gato abb | ordenar uniq -u> c # c es la diferencia establecida a – b
- ¿Es posible modificar un ratón inalámbrico Logitech para un funcionamiento silencioso?
- ¿Quién hackeó el sitio web del Congreso de la India?
- ¿Puedo forzar que Internet Explorer 9 no use el modo de compatibilidad?
- ¿Cuáles son algunos consejos o trucos sobre cómo administrar bien su tiempo?
- ¿Cuáles son los buenos consejos sobre cómo filmar una película corta con una cámara de teléfono inteligente?
- Sumando todos los números en la tercera columna de un archivo de texto (esto es probablemente 3 veces más rápido y 3 veces menos código que el equivalente de Python):
awk ‘{x + = $ 3} FIN {imprimir x}’ miarchivo
- Si desea ver tamaños / fechas en un árbol de archivos, esto es como un “ls -l” recursivo, pero es más fácil de leer que “ls -lR”:
encontrar . -tipo f -ls
- Utilice xargs. Es muy poderoso. Tenga en cuenta que puede controlar cuántos elementos se ejecutan por línea (-L) así como el paralelismo (-P). Si no estás seguro de si va a hacer lo correcto, usa primero xargs echo. Además, -I {} es útil. Ejemplos:
encontrar . -nombre \ *. py | xargs grep some_function
anfitriones de gatos | xargs -I {} ssh root @ {} nombre de host
- Supongamos que tiene un archivo de texto, como un registro de servidor web, y un cierto valor que aparece en algunas líneas, como un parámetro acct_id que está presente en la URL. Si desea un recuento de cuántas solicitudes para cada acct_id:
cat access.log | egrep -o ‘acct_id = [0-9] +’ | corte -d = -f2 | ordenar uniq -c | ordenar -rn
(En parte, ¿Cuáles son algunos consejos para ahorrar tiempo que todos los usuarios de Linux deberían saber? Que contienen algunos otros. Además, vea mi nota sobre el uso de la configuración regional de C, que puede afectar significativamente el rendimiento).
[Una versión ampliada de esta respuesta ahora está en Github.]