Aquí una chuletilla para cuando quiera hacer sustituciones rapidas:
Sustitucion cadena:
1
| sed -i 's/word1/word2/g' input
|
Podemos sustituir directamente y hacer una copia de seguridad con:
1
| sudo sed -i'.bak' 's/bullseye/bookworm/g' /etc/apt/sources.list
|
Encuentra la palabra word1 y sustituyela por word2 usando sed
1
| sed -i 's/word1/word2/g' input
|
Podemos cambiar el delimitador de una manera simple:
1
2
| sed -i 's+word1+word2+g' input
sed -i 's_word1_word2_g' input
|
Podemos añadir la opcion I para que sea “insensitive”
1
2
| sed -i 's/word1/word2/gI' input
sed -i 's_word1_word2_gI' input
|
Sustitucion cadena en vi
Aplico a todo el contenido del fichero
Elimino lineas en blanco:
1
| cat archivo | sed '/^ *$/d' > nuevo_archivo
|
Simulando lo que va a hacer
1
| find . -mtime +4 |awk '{print "ls " $1}
|
Añadiendo el ksh ejecutamos la acción
1
2
| find . -mtime +4 |awk '{print "ls " $1}|ksh
find . -mtime +4 |awk '{print "rm -r " $1}|ksh
|
Todo el contenido de un directorio y subdirectorios con permisos (mejor redireccionar a un archivo)
1
| find . | awk '{print "ls -l " "*" $1}'|sh > ruta
|
1
| find . |sed 's/(/\\(/g' | sed 's/)/\\)/g' |sed 's/ /\\ /g' |sed 's/\&/\\\&/g'|sed 's/\$/\\\$/g' | awk 'BEGIN { FS=":" } {print "ls -l " $1}'
|
Encuentra | sustituye interior de []
1
| find . |sed 's/[()\ \&\$]/\\&/g' | awk 'BEGIN { FS=":" } {print "ls -l " $1}'
|
Listo contenido de directorio, y lo meto en un fichero
Lista el contenido de un directorio, y lo comparas con el contenido de un archivo, mostrara en pantalla el contenido que difiera.
1
| ls -1 *pdf | grep -v -f los_buenos
|
Borra, del directorio, las lineas del fichero los buenos, que estan en el directorio.
1
| ls -1 *pdf | grep -v -f los_buenos | xargs rm
|
Chuletas de tratamiento:
1
2
3
| ls -1 *pdf | awk '{ print "mv " $1 " directorio"}'
ls -1 *pdf | awk '{ print "mv " $0 " directorio"}'
ls -1 *pdf | awk '{ print "mv \"" $0 "\" directorio"}'
|
Borrar por inodos:
1
| find . -inum <inode> -exec rm -i {} \;
|