Como indentar "echo" ???

1. Como indentar "echo" ???

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/12/2018 - 13:20h

Pessoas ... pensando em deixar o código mais elegante me veio a seguinte dúvida .... como indentar um echo ??

tipo ... digamos que eu tenha um script e no meio desse script tem um echo que escreva "#!/bin /bash" em um arquivo X, então ... se eu colocar esse 'echo "#!/bin /bash"' indentado, ele vai indentar no arquivo X tb ... como resolver ??? ou simplesmente não se indenta echo ???


  


2. Re: Como indentar "echo" ???

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/12/2018 - 22:12h

Não sei se entendi a questão... seria isso?
$ echo -e "linha1\n\tlinha2"
linha1
linha2



3. Re: Como indentar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/12/2018 - 22:33h

Ryuk escreveu:

Não sei se entendi a questão... seria isso?
$ echo -e "linha1\n\tlinha2"
linha1
linha2


Vc não entendeu campeão ... eu quero endentar o source sem que a saída endente

EX:
#!/bin/bash
wget algumacoisa.com.br
comando tal
echo "texto qualquer que não vai endentar" > txt.txt


$cat txt.txt
texto qualquer que não vai endentar


sacou aí ???

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Como indentar "echo" ???

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/12/2018 - 23:43h

Fazendo outro teste:
$ cat scripteste.sh 
#!/bin/bash
echo "Testando...
texto texto
mais mais
texto texto" > arquivo.txt

$ cat arquivo.txt
Testando...
texto texto
mais mais
texto texto

De fato fica indentado. Uma possível "solução" usando sed:
echo "Testando...
texto texto
mais mais
texto texto" |sed 's/^[[:space:]]\+//g' > arquivo.txt



5. Re: Como indentar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/12/2018 - 23:55h

Ryuk escreveu:
De fato fica indentado. Uma possível "solução" usando sed:
echo "Testando...
texto texto
mais mais
texto texto" |sed 's/^[[:space:]]\+//g' > arquivo.txt


eu já tinha aventurado a hipótese de usar o sed para suprimir. estava esperando a ideia de vc's que sacam bem do "mixido" para tomar a decisão.

não sei até que ponto é funcional usar um comando a mais sendo que bastava escrever sem indentação.

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: Como indentar "echo" ???

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 04/12/2018 - 20:52h

Mauriciodez escreveu:

Pessoas ... pensando em deixar o código mais elegante me veio a seguinte dúvida .... como indentar um echo ??

tipo ...
digamos que eu tenha um script e no meio desse script tem um echo que escreva "#!/bin /bash" em um arquivo X, então ... se eu colocar esse 'echo "#!/bin /bash"' indentado, ele vai indentar no arquivo X tb ... como resolver ??? ou simplesmente não se indenta echo ???


Boa noite Mauricio.
Segue com o printf...
printf '%10s|Deixa a Margem com 10 colunas\n' >> arquivo.txt
Imprime no Fim da Linha
printf '%*s' "$(tput cols)" 'FIMDALINHA'

Att.:
Marcelo Oliver


7. Re: Como indentar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/12/2018 - 22:17h

msoliver escreveu:
Boa noite Mauricio.
Segue com o printf...
printf '%10s|Deixa a Margem com 10 colunas\n' >> arquivo.txt
Imprime no Fim da Linha
printf '%*s' "$(tput cols)" 'FIMDALINHA'
Att.:
Marcelo Oliver


não entendi campeão !! mas eu não quero fazer margem .. eu quero é endentar o 'echo' no código, mas quero que no arquivo ele permaneça alinhado a esquerda ( sem margem, sem espaço e sem indentação) .

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



8. Usa o xargs

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 05/12/2018 - 19:13h

#!/bin/sh
echo '
1
2
3
4
5
' | xargs > out


$ cat out
1 2 3 4 5



9. Re: Como indentar "echo" ???

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 06/12/2018 - 19:51h

SMarcell escreveu:

#!/bin/sh
echo '
1
2
3
4
5
' | xargs > out


$ cat out
1 2 3 4 5


vc não entendeu velho .... a intenção não é colocar tudo em uma linha !!!

#!/bin/bash
echo '
1
2
3
4
5
' > out

a intenção era que saísse assim
$ cat out
1
2
3
4
5

Abçs

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



10. Re: Como indentar

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 06/12/2018 - 23:54h

#!/bin/sh
echo '
1
2
3
4
5
' | awk '$1 = $1' > out


$ cat out
1
2
3
4
5



11. Re: Como indentar "echo" ???

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 07/12/2018 - 02:38h

o Sandro deu a mesma solução do Ryuk, o que me fez acreditar que a única solução para o caso é o tratamento do 'echo', agora a questão;

Em um universo de centenas de 'echo', trata-los ou não indentar o código ???

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



12. Re: Como indentar "echo" ???

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 07/12/2018 - 17:41h

Mauriciodez escreveu:

o Sandro deu a mesma solução do Ryuk, o que me fez acreditar que a única solução para o caso é o tratamento do 'echo', agora a questão;

Em um universo de centenas de 'echo', trata-los ou não indentar o código ???


Utilize uma função para as saídas não-indentadas. De resto, use o echo normalmente.

#!/bin/sh
echoNoIndent() {
echo "$1" | awk '$1 = $1'
}

echo '"echo" saida indentada:
1
2
3
4
5'

echoNoIndent '"echo" saida nao indentada:
1
2
3
4
5'






01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts