una sustituir script reemplazar manejo linea leer insertar fichero especiales eliminar caracteres caracter cadenas cadena añadir linux bash unix sed

linux - sustituir - En Bash, ¿cómo agrego una cadena después de cada línea en un archivo?



sed reemplazar/ (4)

Prefiero usar awk . Si solo hay una columna, use $0 , de lo contrario reemplácela con la última columna.

De una sola mano,

awk ''{print $0, "string to append after each line"}'' file > new_file

o esto,

awk ''$0=$0"string to append after each line"'' file > new_file

¿Cómo agrego una cadena después de cada línea en un archivo usando bash? ¿Se puede hacer utilizando el comando sed? Si es así, ¿cómo?


Sed es un poco feo, podrías hacerlo elegantemente así:

hendry@i7 tmp$ cat foo bar candy car hendry@i7 tmp$ for i in `cat foo`; do echo ${i}bar; done barbar candybar carbar


Si lo tiene, la utilidad lam (laminate) puede hacerlo, por ejemplo:

$ lam filename -s "string after each line"


Si su sed permite la edición en el lugar mediante el parámetro -i :

sed -e ''s/$/string after each line/'' -i filename

Si no, debes crear un archivo temporal:

typeset TMP_FILE=$( mktemp ) touch "${TMP_FILE}" cp -p filename "${TMP_FILE}" sed -e ''s/$/string after each line/'' "${TMP_FILE}" > filename