Modificar linhas específicas de um arquivo de texto

1. Modificar linhas específicas de um arquivo de texto

Gabriel Fernandez Ferrari Melo
androide72

(usa Linux Mint)

Enviado em 30/06/2019 - 02:21h

Sou novo em shell script, e preciso desenvolver uma script que acrescente no FINAL de cada uma das linhas um determinado código de identificação (um número de um algarismo) bem como as letras que estavam no inicio de cada linha por exemplo para um arquivo do tipo abaixo:
Cl -1.463431 3.842412 -0.071018
N 2.136430 0.460062 0.103134
N 0.427244 2.021000 0.009119
C 2.724643 -0.882636 0.099656
C 4.155235 -0.810965 0.649059

A saída deve ser:
-1.463431 3.842412 -0.071018 1 Cl
2.136430 0.460062 0.103134 2 N
0.427244 2.021000 0.009119 2 N
2.724643 -0.882636 0.099656 3 C
4.155235 -0.810965 0.649059 3 C

Desde já, Muito obrigado :)


  


2. Re: Modificar linhas específicas de um arquivo de texto

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/06/2019 - 12:31h


androide72 escreveu:

Sou novo em shell script, e preciso desenvolver uma script que acrescente no FINAL de cada uma das linhas um determinado código de identificação (um número de um algarismo) bem como as letras que estavam no inicio de cada linha por exemplo para um arquivo do tipo abaixo:
Cl -1.463431 3.842412 -0.071018
N 2.136430 0.460062 0.103134
N 0.427244 2.021000 0.009119
C 2.724643 -0.882636 0.099656
C 4.155235 -0.810965 0.649059

A saída deve ser:
-1.463431 3.842412 -0.071018 1 Cl
2.136430 0.460062 0.103134 2 N
0.427244 2.021000 0.009119 2 N
2.724643 -0.882636 0.099656 3 C
4.155235 -0.810965 0.649059 3 C

Desde já, Muito obrigado :)

Boa tarde Android.
Qual a lógica no número que vai no final da linha?


VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Lógica da linha

Gabriel Fernandez Ferrari Melo
androide72

(usa Linux Mint)

Enviado em 30/06/2019 - 13:19h

A ideia é que vá algum número ao fim de cada linha baseando-se no algarismo inicial. tipo
o N vai ter código 1 então entao ao fim da linha que tiver N no início deve-se colocar 1 N. e para cada palavra inicial coloca-se um código que é um número


4. Re: Modificar linhas específicas de um arquivo de texto

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/06/2019 - 15:51h


androide72 escreveu:

A ideia é que vá algum número ao fim de cada linha baseando-se no algarismo inicial. tipo
o N vai ter código 1 então entao ao fim da linha que tiver N no início deve-se colocar 1 N. e para cada palavra inicial coloca-se um código que é um número

Ok, só não entendi qual a relação do N com o um.
Para alterar a ordem dos campos, é tranquilo, pode ser com sed ou awk.


VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


5. Re: Modificar linhas específicas de um arquivo de texto

Gabriel Fernandez Ferrari Melo
androide72

(usa Linux Mint)

Enviado em 30/06/2019 - 17:19h

É apenas um parâmetro de identificação. Cujo o número 1 representará o N.


6. Re: Modificar linhas específicas de um arquivo de texto

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/07/2019 - 19:40h

Boa noite.
Veja se é o que precisa:
sed 's/^Cl/1 &/;s/^N/2 &/;s/^C/3 &/' teste |awk '{print $5,$4,$3,$1,$2}'
Ou
awk '{if($1=="Cl") print $2,$3,$4,"1",$1;else if($1=="N") print $2,$3,$4,"2",$1;else if($1=="C") print$2,$3,$4, "3",$1}' teste


Importante, leia! => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts