
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 awk
comando:
$ 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 a
y 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.