Há como contatenar texto para mesma linha? [RESOLVIDO]

1. Há como contatenar texto para mesma linha? [RESOLVIDO]

Uéliton Alves dos Santos
AlvesUeliton

(usa Outra)

Enviado em 01/01/2014 - 14:39h

Quero gerar o seguinte trecho de um sh:

#!/bin/bash
sleep 08 &&
conky -c /home/ueliton


Porem está divivido em dois arquivos:

start1.text1
#!/bin/bash
sleep 08 &&
conky -c


e addgerado.text
/home/ueliton 


Pretendo catatená-los. O start1.text já existe, o addgerado.text foi direcionado do comando...
$ pwd > addgerado.text 
, o qual criou o arquivo de texto.

Porém ao adicionar o conteúdo do arquivo addgerado.text em star1.text, ocorre uma quebra de linha.

ex.: Comando:
$ cat addgerado.text >> star1.text1 


Resultado:
#!/bin/bash
sleep 08 &&
conky -c
/home/ueliton
.

Há como solucionar isto com alguns comandos, scripts, ou qualquer outra forma? Para que o resultado seja sem a quebra de linha.

#!/bin/bash
sleep 08 &&
conky -c /home/ueliton



Ubuntu Studio 13.04 raring Linux 3.8.0-34-lowlatency (x86_64)


  


2. MELHOR RESPOSTA

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 02/01/2014 - 15:08h

a dica acima do phoemur, funciona perfeitamente.

outras formas:


#!/bin/bash
sleep 08 &&


for linha in `cat addgerado.text`
do

conky -c $linha

done


ou

while read linha
do

conky -c $linha

done < addgerado.text


3. Re: Há como contatenar texto para mesma linha? [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 01/01/2014 - 22:47h

Sim, há como fazer isso de diversas formas...

Mas ao invés de reinventar a roda, porque você não coloca apenas uma barra invertida no fim da linha, ficando assim:


#!/bin/bash
sleep 08 &&
conky -c \


e após os comandos
o arquivo final ficaria assim:

#!/bin/bash
sleep 08 &&
conky -c \
/home/ueliton

e funcionaria da mesma forma


4. Re: Há como contatenar texto para mesma linha? [RESOLVIDO]

Uéliton Alves dos Santos
alvesueliton

(usa Outra)

Enviado em 02/01/2014 - 16:50h

phoemur escreveu:

Sim, há como fazer isso de diversas formas...

Mas ao invés de reinventar a roda, porque você não coloca apenas uma barra invertida no fim da linha, ficando assim:


#!/bin/bash
sleep 08 &&
conky -c \


e após os comandos
o arquivo final ficaria assim:

#!/bin/bash
sleep 08 &&
conky -c \
/home/ueliton

e funcionaria da mesma forma


Cara! Obrigado, Perfeito! Mas preciso continuar o "file:///" com outro arquivo de texto, de forma que fique assim:

/home/ueliton/.conky 


Como faria isto? Lembrando que a parte inicial do "file:///" é gerado por comando, então talvez não há como escrever "\" após "/home/ueliton"





will_drop escreveu:

a dica acima do phoemur, funciona perfeitamente.

outras formas:


#!/bin/bash
sleep 08 &&


for linha in `cat addgerado.text`
do

conky -c $linha

done


ou

while read linha
do

conky -c $linha

done < addgerado.text


Não entendi, isto é no terminal, ou no arquivo de texto?



5. Re: Há como contatenar texto para mesma linha? [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 02/01/2014 - 19:12h

Como eu disse, há inúmeras formas de fazer isso... Aqui vai uma usando SED...

Arquivo original arquivo.txt:

#!/bin/bash
sleep 08 &&
conky -c


Agora eu vou adicionar /home/ueliton/.conky no fim da última liha com o sed, o comando é esse:

sed -i '$s/^.*$/& \/home\/ueliton\/.conky/' arquivo.txt


Veja a saída antes e depois:

phoemur ~/bash/teste $ cat arquivo.txt
#!/bin/bash
sleep 08 &&
conky -c
phoemur ~/bash/teste $ sed -i '$s/^.*$/& \/home\/ueliton\/.conky/' arquivo.txt
phoemur ~/bash/teste $ cat arquivo.txt
#!/bin/bash
sleep 08 &&
conky -c /home/ueliton/.conky


Note que eu tive que escapar as barras de /home/ueliton/.conky para \/home\/ueliton\/.conky para funcionar dentro do sed... Se você quer mesmo aprender shellscript sugiro estudar SED ou AWK pois às vezes você pode precisar...


6. Ixi! Complicou

Uéliton Alves dos Santos
alvesueliton

(usa Outra)

Enviado em 03/01/2014 - 22:11h

Obrigado pela ajuda, eu não expliquei bem. Quero criar um script que capture o caminho da pasta pessoal de qualquer PC, e jogue para o .sh do conky, criando assim um .sh automáticamente, sem que o usuário tenha que modificar o nome da pasta pessoal, já que o script irá copiar e colar o caminho exato. Resumindo... funciona como um instalador do .sh.

Mas o comando que você sugeriu anteriomente(\), já resolve, farei com que o pwd seja executado dentro da ultima pasta,assim não há necessidade de emendas.

ex.:
$ cd ~; cd .conky && pwd > addgerado.text 


Saída no arquivo de texto:
/home/ueliton/.conky 


Assim posso direcionar todo o caminho para o .sh com o cat.

Só há um problema... o arquivo também deve constar, pra ser executado no .sh.

/home/ueliton/.conky/conky1




O conky: http://www.vivaolinux.com.br/screenshot/Xfce-Conky-no-Ubuntu-Studio-1/







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts