Bash :: agregar texto a la salida del archivo

Bash :: agregar texto a la salida del archivo

Soy muy nuevo en Shell Scripting, por lo que quizás esta sea una solución muy sencilla, pero estoy luchando para que funcione. Tengo un archivo con este contenido:

example1.eu 
example2.eu 
example3.eu

Lo que estoy tratando de hacer es generar el contenido de un archivo en una sola línea formateando algo como esto.

prueba.ejemplo1.eu,prueba.ejemplo2.eu,prueba.ejemplo3.eu

etcétera.

Tengo esto en mi script pero no sé cómo agregar "prueba" a la primera entrada del archivo.

cat file | xargs | sed -e 's/ /,test./g'

ejemplo1.eu,prueba.ejemplo2.eu,prueba.ejemplo3.eu

Por favor avise gracias

Respuesta1

Puede utilizar 'pegar' para configurar el delimitador. P.ej

cat file | sed -e 's/^/test./' | paste -sd ','

Editar: versión mejorada (comentario de tripleee)

sed file -e 's/^/test./' | paste -sd ','

Respuesta2

Esto se puede hacer usando el awkcomando:

 $ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
 test.example1.eu,test.example2.eu,test.example3.eu

Esto crea una variable de cadena ay agrega cada línea y una coma a la cadena. Luego reemplaza la coma final con nada e imprime la cadena.

Respuesta anterior con coma al final:

 $ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,

Esto establece el Separador de registros de salida en una coma y luego imprime cada línea test.antepuesta a la cadena.

información relacionada