special multiple files characters bash sed text-files spaces replace

bash - multiple - sed replace regex



Elimine las líneas vacías de txtfiles, elimine los espacios del inicio y final de la línea (4)

Cuál sería mejor:

sed -e ''/^$/d'' *.txt sed ''g/^$/d'' -i *.txt

Además, ¿cómo elimino los espacios del principio y final de cada línea en el archivo de texto?


Esto podría funcionar para usted:

sed -r ''s/^/s*(.*/S)*/s*$//1/;/^$/d'' file.txt


Método aún más simple utilizando awk.

cat filename.txt | awk ''NF'' | awk ''{$1=$1;print}''

awk ''NF'' - Esto eliminará todas las líneas en blanco / vacías.

awk ''{$1=$1;print}'' - Esto eliminará solo los espacios en blanco finales, (tanto a la izquierda como a la derecha)


Similar, pero usando el ex editor:

ex -s +"g/^$/de" +"%s/^/s/+//e" +"%s//s/+$//e" -cwq foo.txt

Para múltiples archivos:

ex -s +''bufdo!g/^$/de'' +''bufdo!%s/^/s/+//e'' +''bufdo!%s//s/+$//e'' -cxa *.txt

Para reemplazar de forma recursiva, puede usar una nueva opción de globbing (por ejemplo, **/*.txt ).


$ sed ''s/^ *//; s/ *$//; /^$/d'' file.txt `s/^ *//` => left trim `s/ *$//` => right trim `/^$/d` => remove empty line