Tengo un script de shell que se usa find -print0para guardar una lista de archivos para procesar en un archivo temporal. Como parte del registro, me gustaría generar el número de archivos encontrados, por lo que necesito una forma de obtener ese recuento. Si la -print0opción no se usara por seguridad, podría usar wc -lpara obtener el recuento.
shell-script
qqx
fuente
fuente

headytailen entradas delimitadas por nulos en bash?Respuestas:
Algunas opciones:
Tenga en cuenta que para una entrada que contiene datos después del último carácter NUL (o entrada no vacía sin caracteres NUL), los
trenfoques siempre contarán el número de caracteres NUL, pero los enfoquesawk/sed/grepcontarán un registro adicional para esos bytes adicionales .fuente
head -c 5G /dev/urandom > f). Resultados: grep 1.7s (lo mismo paragrep -Fcz '') • tr + wc-c 7.7s • tr + wc-l 7.4s • sed 34.7s • awk 1m11.7sawk, querrá establecer la configuración regional enC(o cualquiera que no use caracteres multibyte),LC_ALL=C awk ... < fLC_ALL=Censortdonde no acelerar las cosas, por lo tanto Afortunadamente todavía tengo tener el archivo de delante:LC_ALL=C awk ...toma 6.7s.El mejor método en el que he podido pensar es usar
grep -zc '.*'. Esto funciona, pero se siente mal usar grep con un patrón que coincida con cualquier cosa.fuente
Con
perl:o:
o:
fuente
wc -l) como una nota (como puede ser que se quiera).