editar archivos de texto

Editar archivos de texto desde la línea de comandos en Linux

Cuando de trata de automatizar, u optimizar, algunas operaciones sobre archivos de textos, tal como adicionar, modificar o eliminar, solemos acudir a los comandos para facilitar esta labor, en lugar de hacerlo a lo tradicional, como en procesador de textos. Entonces miremos cómo editar archivos de texto desde la linea de comandos en Linux.

El comando más «filudo» para este propósito es el comando sed. Con sed podemos realizar todas las operaciones de edición de texto desde la línea de comandos, de manera tan precisa, que podemos incluirlo en procesos de automatización con programación tipo scripting en Bash.

Editar archivos de texto desde la línea de Comandos con Sed


Leer la línea 39000 del archivo

sed -n 39000p archivo.txt

Eliminar la primera línea de todos los archivos PHP

sed -i '1d' *.php

La opción -i actualiza el archivo con los cambios. Sin esta opción solo mostrará los cambios en pantalla.

Insertar la cadena ‘Titulo’ en la primera línea de todos los archivos txt (esto sobreescribe esa línea)

sed -i '1i Titulo' *.txt

Insertar la cadena ‘Titulo’ en la primera línea de todos los archivos txt (sin sobreescribir esa línea)

sed -i '1i\Titulo' *.txt

Quitar espacios en blanco

sed ‘/^$/d’ input.txt > output.txt

Tenemos la siguiente lista de líneas en un archivo de texto:

Tabla
Destino
0.0.0.0
169.254.0.0
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.9
192.168.0.148
192.168.0.192
Tabla
Destino
0.0.0.0
169.254.0.0
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.9
192.168.0.148

Con el siguiente comando borramos todo lo que comience desde la línea Tabla hasta la línea 0.0.0.0:

sed -i '/Tabla/,/0.0.0.0/d' archivo.txt

De esa misma lista de líneas, necesitamos borrar las que dice 192.168.0.9 (no deja líneas en blanco):

sed -i '/'192.168.0.9'/d' prueba.txt

Borrar líneas de texto que tenga la frase ‘esto ya no sirve’ (esto deja la linea en blanco)

sed -i 's/esto ya no sirve//g' archivo.txt

En el comando anterior, también podemos poner en lugar del texto, una variable que almacene cualquier texto que le pasemos.

sed -i '/'$variable'/d' archivo.txt

Borrar líneas en blanco

sed -i '/^$/d' prueba.txt

Reemplazar cadenas de texto

sed -i 's/viejo texto/nuevo texto/g' archivo.txt

El detalle con el anterior comando es que si el ‘viejo texto’ está pegado a otro, nos reemplazara hasta el texto pegado. Usemolo de esta manera para que solo cambie el ‘viejo texto’:

sed -i 's/viejo texto /nuevo texto/g' archivo.txt

Colocar texto al final del archivo

sed -i -e '$a\nuevo texto' prueba.txt

Potenciar el comando Sed con el comando Find


Buscar archivos PHP y eliminarles la primera linea

find ./* -name "*.php" -print | xargs sed -i '1d'

Valora este artículo:

Editar archivos de texto desde la línea de comandos en Linux
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.
Nombres
Email
Titulo
Calificanos
Contenido

Bárbaro

★★★★★
“ Súper”
- Robert
Comparte esto en
Publicado en GNU Linux.

Un comentario

  1. Pingback: 🥇 Principales Comandos de Linux - Comprimir Ficheros Directorios

Los comentarios están cerrados.