Estoy intentando crear un archivo y parece que el vi
editor agrega un $
al final de cada línea. No sé qué está causando esto ni cómo evitarlo vi
.
vi file.txt
12345
abcde
cat -v -e file.txt
12345$
abcde$
wc file.txt
2 2 12
No quiero esos $
símbolos al final; Rompen mis archivos de automatización que dependen del número de caracteres. ¿Por qué el recuento de palabras muestra 12 caracteres cuando en realidad cada línea tiene 5 caracteres?
VIM versión 7.4.629
Respuesta1
El comentario de @steeldriver es correcto: cat
muestra finales de línea con $
(como vi
lo haría si lo preguntara amablemente, usando ":set list"). El carácter adicional por línea es la nueva línea (un carácter invisible al final de cada línea de texto).
Si desea sólo un recuento de losimprimibletexto, puede filtrar el archivo antes de procesarlo con wc
, por ejemplo, usando tr
la -d
opción. Aquí hay un script que se considera un ejemplo:
#!/bin/sh
cat $0 |wc
cat $0 | tr -d '\r\n\t' | wc
cat $0 | tr -d '[:cntrl:]' |wc
aunque la última línea posiblemente no sea lo suficientemente portátil para su uso (está enPOSIX, en elextendidosección). Pero se ejecutará en cualquier cosa que probablemente esté utilizando, según las pistas del razonamiento.