Discussion:
[shell-script] Remover ultimo caracter e o newline de um arquivo.
eric miranda ericitaquera@gmail.com [shell-script]
2018-07-05 17:31:47 UTC
Permalink
Queridos experts, boa tarde.

Tenho um arquivo txt no seguinte formato:

-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
Port description is SERVER1
fc2/2 is trunking;
Port description is ISL to 9710
fc2/3 is up;
Port description is SERVER2

Do qual gostaria de remover os caracteres de quebra de linha de todas as
linhas terminadas em ";".

fc2/1 is up Port description is SERVER1
fc2/2 is trunking Port description is ISL to 9710
fc2/3 is up Port description is SERVER2

Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta dois
chars, por exemplo, "tr '; \n' ' ' ".

Por gentileza, poderiam compartilhar uma solução?

Obrigado!!
--
Eric Miranda
+55-11-964550639
'T.Collons' t.collons@gmail.com [shell-script]
2018-07-05 20:29:00 UTC
Permalink
Bona Nit


teste iso


sed -i 'N;s/;\n//;s/\ \ \ //' nhanha.txt
Post by eric miranda ***@gmail.com [shell-script]
Queridos experts, boa tarde.
-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
    Port description is SERVER1
fc2/2 is trunking;
    Port description is ISL to 9710
fc2/3 is up;
    Port description is SERVER2
Do qual gostaria de remover os caracteres de quebra de linha de todas
as linhas terminadas em ";"..
fc2/1 is up    Port description is SERVER1
fc2/2 is trunking   Port description is ISL to 9710
fc2/3 is up    Port description is SERVER2
Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta
dois chars, por exemplo, "tr '; \n' ' ' ".
Por gentileza, poderiam compartilhar uma solução?
Obrigado!!
--
Eric Miranda
+55-11-964550639
--
Pere

***@gmail.com <mailto:***@gmail.com>



<https://www.google.com/>

------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges
d'empresa i altre informació confidencial tutelada per les lleis de
Europea i altres estats, Si VostÚ el rep per error o sense ser una de
les persones esmenades a la capçalera, haurà de destruir-lo sense
copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el
contingut del missatge i notificar-ho per correu electrònic a l'emissor
del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat
podran ésser perseguides davant dels Tribunals de Justícia sota l'empar
de la legislació civil, penal i administrativa nacional i internacional.

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other
confidential information protected under the laws of and other
territories. if you are not one of the intended recipients of the
message, you are legally obliged to delete the message content.
Furthermore, you are kindly requested to report immediately the incident
to the sender.

Breach of confidentiality duties is a serious criminal offence in and
other territories. Offenders shall be legally prosecuted worldwide.

Thank you for your cooperation.
eric miranda ericitaquera@gmail.com [shell-script]
2018-07-06 12:16:47 UTC
Permalink
Moltes gràcies!!

Funcionou e eu entendi a solução: foi o "N".

Em tempo:

Vinicius, valew pelo script, eu mesmo tinha feito um frank aqui pra
resolver logo e prosseguir o trabalho, mas eu tava procurando mesmo um
oneliner.

Julio, obrigado, funfou aqui tb

Obrigado!
Post by 'T.Collons' ***@gmail.com [shell-script]
Bona Nit
teste iso
sed -i 'N;s/;\n//;s/\ \ \ //' nhanha.txt
Queridos experts, boa tarde.
-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
Port description is SERVER1
fc2/2 is trunking;
Port description is ISL to 9710
fc2/3 is up;
Port description is SERVER2
Do qual gostaria de remover os caracteres de quebra de linha de todas as
linhas terminadas em ";"..
fc2/1 is up Port description is SERVER1
fc2/2 is trunking Port description is ISL to 9710
fc2/3 is up Port description is SERVER2
Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta
dois chars, por exemplo, "tr '; \n' ' ' ".
Por gentileza, poderiam compartilhar uma solução?
Obrigado!!
--
Eric Miranda
+55-11-964550639
--
Pere
<https://www.google.com/>
------------------------------------
AVIS LEGAL
Nota de confidencialitat: Aquest missatge podria contenir missatges
d'empresa i altre informació confidencial tutelada per les lleis de Europea
i altres estats, Si VostÚ el rep per error o sense ser una de les persones
esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni
revelar-l'ho o qualsevol altre acció relacionada amb el contingut del
missatge i notificar-ho per correu electrònic a l'emissor del missatge.
Les persones o entitats que incompleixin els deures de confidencialitat
podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de
la legislació civil, penal i administrativa nacional i internacional..
Gracies per la seva cooperació.
------------------------------------
LEGAL NOTICE
Confidentiality notice: This mail may include business and other
confidential information protected under the laws of and other territories.
if you are not one of the intended recipients of the message, you are
legally obliged to delete the message content. Furthermore, you are kindly
requested to report immediately the incident to the sender.
Breach of confidentiality duties is a serious criminal offence in and
other territories. Offenders shall be legally prosecuted worldwide.
Thank you for your cooperation.
--
Eric Miranda
+55-11-964550639


[As partes desta mensagem que não continham texto foram removidas]
Vinicius Costa Carvalho vinicius@carvalho.inf.br [shell-script]
2018-07-05 17:47:37 UTC
Permalink
Opa!

Assim não da?

sed 's/;$\n//g'
Post by eric miranda ***@gmail.com [shell-script]
Queridos experts, boa tarde.
-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
Port description is SERVER1
fc2/2 is trunking;
Port description is ISL to 9710
fc2/3 is up;
Port description is SERVER2
Do qual gostaria de remover os caracteres de quebra de linha de todas as
linhas terminadas em ";"..
fc2/1 is up Port description is SERVER1
fc2/2 is trunking Port description is ISL to 9710
fc2/3 is up Port description is SERVER2
Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta
dois chars, por exemplo, "tr '; \n' ' ' ".
Por gentileza, poderiam compartilhar uma solução?
Obrigado!!
--
Eric Miranda
+55-11-964550639
--
Vinicius Costa Carvalho

"Se enxerguei mais longe, foi porque me apoiei sobre os ombros de gigantes."
*Isaac Newton*
Vinicius Costa Carvalho vinicius@carvalho.inf.br [shell-script]
2018-07-05 17:59:26 UTC
Permalink
Já vi que não da... mas fiz um script, ficou meio longo, mas funciona...

##################
#!/bin/bash

file=$1

while read line; do {
echo $line | grep -q ";$" && juntaLinha=1

[[ "$juntaLinha" == "1" ]] && echo -n "${line/;} " || echo $line

unset juntaLinha
}
done < $file
###################
Post by Vinicius Costa Carvalho ***@carvalho.inf.br [shell-script]
Opa!
Assim não da?
sed 's/;$\n//g'
Post by eric miranda ***@gmail.com [shell-script]
Queridos experts, boa tarde.
-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
Port description is SERVER1
fc2/2 is trunking;
Port description is ISL to 9710
fc2/3 is up;
Port description is SERVER2
Do qual gostaria de remover os caracteres de quebra de linha de todas as
linhas terminadas em ";"..
fc2/1 is up Port description is SERVER1
fc2/2 is trunking Port description is ISL to 9710
fc2/3 is up Port description is SERVER2
Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta
dois chars, por exemplo, "tr '; \n' ' ' ".
Por gentileza, poderiam compartilhar uma solução?
Obrigado!!
--
Eric Miranda
+55-11-964550639
--
Vinicius Costa Carvalho
"Se enxerguei mais longe, foi porque me apoiei sobre os ombros de gigantes."
*Isaac Newton*
--
Vinicius Costa Carvalho

"Se enxerguei mais longe, foi porque me apoiei sobre os ombros de gigantes."
*Isaac Newton*
itamarnet@yahoo.com.br [shell-script]
2018-07-06 13:30:31 UTC
Permalink
Vinícius

Que tal:


awk '/;$/{printf $0;next}; 1' arquivo.txt



[]'s
Itamar

'Julio C. Neves' julio.neves@gmail.com [shell-script]
2018-07-06 00:00:00 UTC
Permalink
Dá para fazer com sed sim. Experimente:

$ sed '/;/N; s/;\n//' nhanha.txt

Abraços,
Julio

*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*
*O melhor de todos em EAD é http://www.dicas-l.com.br/cursos/psl/
<http://www.dicas-l.com.br/cursos/psl/>*

*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas.. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by eric miranda ***@gmail.com [shell-script]
Queridos experts, boa tarde.
-bash-4.3$ head -10 nhanha.txt
fc2/1 is up;
Port description is SERVER1
fc2/2 is trunking;
Port description is ISL to 9710
fc2/3 is up;
Port description is SERVER2
Do qual gostaria de remover os caracteres de quebra de linha de todas as
linhas terminadas em ";"..
fc2/1 is up Port description is SERVER1
fc2/2 is trunking Port description is ISL to 9710
fc2/3 is up Port description is SERVER2
Descobri que com sed não dá pra fazer 's/$//g' não dá e tr não suporta
dois chars, por exemplo, "tr '; \n' ' ' ".
Por gentileza, poderiam compartilhar uma solução?
Obrigado!!
--
Eric Miranda
+55-11-964550639
Loading...