Por ejemplo, queremos contar todos los caracteres de comillas ( "); solo nos preocupamos si los archivos tienen más citas de las que deberían.
Por ejemplo:
cluster-env,"manage_dirs_on_root","true"
cluster-env,"one_dir_per_partition","false"
cluster-env,"override_uid","true"
cluster-env,"recovery_enabled","false"
Resultados previstos:
16
text-processing
yael
fuente
fuente

Respuestas:
Puede combinar
tr(traducir o eliminar caracteres) conwc(contar palabras, líneas, caracteres):(
-delija todos los caracteres en lacejecución de", y luego cuente losccaracteres).fuente
enfoque grep :
-o- salida solo subcadenas coincidentesO con un solo gawk :
RS=''- separador de registro vacío (en lugar de nueva línea)FPAT='"'- patrón que define el valor del campofuente
-oes una extensión GNU no estándar de lagreputilidad estándar . No se menciona en la documentación POSIX paragrep.Si dos líneas en el archivo tienen un número impar de comillas dobles, la suma total de comillas dobles será par y no detectará comillas desequilibradas (esto es lo que supongo que le gustaría hacer, pero podría estar equivocado )
Este
awkscript informa cualquier línea en la línea de entrada que tenga un número impar de comillas:Establecemos el separador de campo (
FS)"con lo-F'"'que significa que si una línea tiene un número par de campos, tiene comillas impares.NFes el número de campos en el registro reciente yNRes el número ordinal del registro actual ("el número de línea").Dada la siguiente entrada:
obtenemos
Algo como
devolvería "14" para este archivo.
fuente
Otro
gawkenfoque único :fuente
BASH puro:
fuente
tmpuna matriz? En caso afirmativo, ¿tmpes una variedad de qué?tmpen este fragmento hay una variable de shell normal. Y estoy rechazando esta respuesta porque esto cuenta el número de veces que aparece un carácter en una variable (var) en lugar de en un archivo como se especifica en la pregunta.tratar:
sin embargo, esto no funcionará si dos o más caracteres en la misma línea. Se contarán como un personaje
fuente
grep -oF '"' archivo | wc -l
-F significa cuerda fija
fuente
-Fbandera, que no es necesaria aquí.Método excéntrico de doble GNU
grep:fuente