linux - una - sed sustituir caracteres especiales




En Bash, ¿cómo agrego una cadena después de cada línea en un archivo? (3)

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í:

[email protected] tmp$ cat foo 
bar
candy
car
[email protected] tmp$ for i in `cat foo`; do echo ${i}bar; done
barbar
candybar
carbar

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






sed