Jump to content

Shell


ssofia
 Share

Recommended Posts

Olá gente

Estou a precisar de uma ajuda...para fazer isto em shell....

Eu tenho um doc_inicial com duas colunas, exemplo...

rrrr 102030

ddd 030303

sss 2020394

O que eu quero é colocar isto num doc_final e que fique assim:....

rrrr ddd sss

102030 030303 2020394

Eu posso usar o comando "cut" para cortar as colunas que quero e depois usar algo para colar no meu doc final???

Bgdo pela ajuda

Link to comment
Share on other sites

Antes de mais recomendo-te que digas qual shell estás a utilizar, existem várias shell e várias delas têm sintaxes diferentes, por isso convém que digas qual usas.

Recomendo-te que faças isso mas em Perl...

Com Perl, ao contrário de com uma shell, só precisas de saber Perl, enquanto que com shell precisas de saber shell e várias outras ferramentas complementares, que frequentemente têm sintaxes bastante diferentes.

Aprender o suficiente de Perl para fazer o que queres é elementar, por isso não vais gastar assim tanto tempo para aprender. Na secção de Perl do P@P, podes encontrar várias ligações com introduções ao Perl.

Link to comment
Share on other sites

Isso é um trabalho para o sed, mas por si só não chega, o sed processa linha a linha. Com o awk já te safarás, mas isso já estás a meio caminho de usar perl, o que é a escolha óbvia para este tipo de tarefa.

google -> sed lines to columns

Link to comment
Share on other sites

Podes usar o cut e o paste:

#!/bin/sh

original='test.txt'
final='final.txt'

cut -f1 ${original} > 1.txt
cut -f2 ${original} > 2.txt
paste -s 1.txt 2.txt > ${final}

Resultado final:

$ cat final.txt
rrrr    ddd    sss
102030    030303    2020394

Nota: assumi que as colunas do ficheiro original estavam separadas por um TAB, caso contrário tens de definir o delimitador no cut.

  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.