Agregue una cadena de prefijo al comienzo de cada línea

Resuelto pierrotlefou asked hace 14 años • 18 respuestas

Tengo un archivo como el siguiente:

line1
line2
line3

Y quiero obtener:

prefixline1
prefixline2
prefixline3

Podría escribir un script Ruby, pero es mejor si no lo necesito.

prefixcontendrá /. Es un camino, /opt/workdir/por ejemplo.

pierrotlefou avatar Jan 20 '10 13:01 pierrotlefou
Aceptado
# If you want to edit the file in-place
sed -i -e 's/^/prefix/' file

# If you want to create a new file
sed -e 's/^/prefix/' file > file.new

Si prefixcontiene /, puede usar cualquier otro carácter que no esté en prefix, o escapar de /, de modo que el sedcomando se convierta en

's#^#/opt/workdir#'
# or
's/^/\/opt\/workdir/'
Alok Singhal avatar Jan 20 '2010 06:01 Alok Singhal
awk '$0="prefix"$0' file > new_file

En awk la acción predeterminada'{print $0}' es (es decir, imprimir la línea completa), por lo que lo anterior equivale a:

awk '{print "prefix"$0}' file > new_file

Con Perl (reemplazo implementado):

perl -pi 's/^/prefix/' file
Vijay avatar Jan 20 '2010 06:01 Vijay