Pular para o conteúdo

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

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

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

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)

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

Melhor resposta

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]

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]

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]

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

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/

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder