Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

1. Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 16:45h

Tenho um arquivo com sequências de números, uma por linha, e quero criar outro arquivo adicionando uma palavra qualquer em cada linha, juntando assim a "palavra" aos "números". Como fazer?

Ex.:

arquivo1.txt
111
112
113
...

Adicionar palavra "nome" e criar o arquivo2.txt:
nome111
nome112
nome113
...



  


2. MELHOR RESPOSTA

Arthur J. Hoch
Arthur_Hoch

(usa FreeBSD)

Enviado em 03/01/2016 - 17:21h

Se for usar o awk poderia fazer assim:

awk '{print "nome"$0}' arquivo1.txt > arquivo2.txt 


3. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 19:43h

Arthur_Hoch escreveu:

Se for usar o awk poderia fazer assim:

awk '{print "nome"$0}' arquivo1.txt > arquivo2.txt 


Funcionou, obrigado!!!

E se fosse para colocar o "nome" no final de cada linha, tem como? ;-)


4. Re: Como adicionar uma palavra no início de cada linha de um arquivo?

Arthur J. Hoch
Arthur_Hoch

(usa FreeBSD)

Enviado em 03/01/2016 - 20:49h

PauloHAC escreveu:

Arthur_Hoch escreveu:

Se for usar o awk poderia fazer assim:

awk '{print "nome"$0}' arquivo1.txt > arquivo2.txt 


Funcionou, obrigado!!!

E se fosse para colocar o "nome" no final de cada linha, tem como? ;-)


De nada,

A outra suloção é muito complexa, como podemos observar:

awk '{print $0"nome"}' arquivo1.txt > arquivo2.txt 


Só explicando como funciona:

O print está escrevendo o valor de $0 que é igual ao contéudo da linha mais a string "nome", logo $0+"nome" e "nome"+$0, e então a saída é encaminha para o stdout (>) apontando para um arquivo.

Conselhos:

$ firefox google.com
$ man awk



5. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 20:55h

Se quiser a solução com o sed, tente assim:

sed 's/^\([0-9]\+\)/nome\1/g' arquivo1.txt > arquivo2.txt


Pra colocar no final de cada linha,

sed 's/^\([0-9]\+\)/\1nome/g' arquivo1.txt > arquivo2.txt


- -
moremoremoreram!
http://bit.ly/1Pqwb4T



6. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 21:10h

Valeu galerinha, vocês são fera!!!
:D


7. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Arthur J. Hoch
Arthur_Hoch

(usa FreeBSD)

Enviado em 03/01/2016 - 21:19h

ru4n escreveu:

Se quiser a solução com o sed, tente assim:

sed 's/^\([0-9]\+\)/nome\1/g' arquivo1.txt > arquivo2.txt


Pra colocar no final de cada linha,

sed 's/^\([0-9]\+\)/\1nome/g' arquivo1.txt > arquivo2.txt


- -
moremoremoreram!
http://bit.ly/1Pqwb4T


Que tal usar o sed assim?
Acho que nesse caso não é necessário verificar se é número. "adicionar uma palavra no início de cada linha"

Respectivamente:

$ sed s/^/nome/ arquivo1.txt > arquivo2.txt
$ sed s/$/nome/ arquivo1.txt > arquivo2.txt




8. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 21:27h

Arthur_Hoch escreveu:

Que tal usar o sed assim?
Acho que nesse caso não é necessário verificar se é número. "adicionar uma palavra no início de cada linha"

Respectivamente:

$ sed s/^/nome/ arquivo1.txt > arquivo2.txt
$ sed s/$/nome/ arquivo1.txt > arquivo2.txt



O problema desse caso é que ele pega também linhas vazias.

- -
moremoremoreram!
http://bit.ly/1Pqwb4T



9. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2016 - 21:30h

ru4n escreveu:

Arthur_Hoch escreveu:

Que tal usar o sed assim?
Acho que nesse caso não é necessário verificar se é número. "adicionar uma palavra no início de cada linha"

Respectivamente:

$ sed s/^/nome/ arquivo1.txt > arquivo2.txt
$ sed s/$/nome/ arquivo1.txt > arquivo2.txt



O problema desse caso é que ele pega também linhas vazias.

- -
moremoremoreram!
http://bit.ly/1Pqwb4T


É verdade. Testei aqui e no caso o awk também pega linhas vazias. Mas para o meu propósito isso não será problema. Ambas as soluções funcionam!!! :-)


10. Re: Como adicionar uma palavra no início de cada linha de um arquivo? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 02/02/2016 - 22:56h

Olá,

Basta negar as linhas vazias, ou seja, aplicar a substituição apenas na linhas não vazias.:
sed -r '/[^(^$)]/ s/^/nome/g' arquivo1 > arquivo2 

ou aplicar a substituição apenas nas linhas que contenham ao menos 1 caractere:
sed -r '/.+/ s/^/nome/g' arquivo1 > arquivo2 

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts