Você pode usar "colar" para definir o delimitador. Por exemplo,
cat file | sed -e 's/^/test./' | paste -sd ','
Editar: versão melhorada (comentário de tripleee)
sed file -e 's/^/test./' | paste -sd ','
Sou muito novo no Shell Scripting, por isso talvez seja uma solução muito fácil, mas estou com dificuldades para fazê-lo funcionar. Eu tenho um arquivo com este conteúdo:
example1.eu
example2.eu
example3.eu
O que eu estou tentando fazer é a saída do conteúdo de um arquivo para uma formatação de linha única para algo como isto.
test.example1.eu,test.example2.eu,test.example3.eu
e assim por diante.
Eu tenho isso no meu script, mas não consigo imaginar como "testar" a primeira entrada do arquivo.
cat file | xargs | sed -e 's/ /,test./g'
example1.eu,test.example2.eu,test.example3.eu
Por favor, informe Obrigado
Isso pode ser feito usando o comando awk
:
$ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
test.example1.eu,test.example2.eu,test.example3.eu
Isso cria uma variável de string a
e acrescenta cada linha e uma vírgula à string. Em seguida, substitui a vírgula final com nada e imprime a string.
Resposta anterior com vírgula à direita:
$ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,
Isso define o Separador de Registro de Saída como uma vírgula e, em seguida, imprime cada linha com test.
prefixada à string.