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