Trabalhar com colunas em Shell Script

1. Trabalhar com colunas em Shell Script

Alexandre Santos
Nick234

(usa Arch Linux)

Enviado em 30/12/2008 - 23:09h

Olá,

Tenho um arquivo de texto onde tenhos a seguinte linha:

xxxx: /caminho/usr/etc

OBS: São muitas linhas parecidas com essa...
tenho 2 tarefas....

1- remover a primeira coluna "xxxx:" (o separador é apenas um espaço)
2- depois de remover, adicionar o rm na frente... ficando

rm /caminho/usr/etc

Só que saco pouco pouco de shell script...

Grato..


  


2. Usando o sed

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 31/12/2008 - 09:41h

Você pode adaptar este exemplo para o seu caso:

$ cat input.txt
123: /abc/123
xxx: /123/abc:def
zzzwww: /000/111

$ sed 's/.*: /rm /g' < input.txt > output.txt

$ cat output.txt
rm /abc/123
rm /123/abc:def
rm /000/111



3. Re: Trabalhar com colunas em Shell Script

Alexandre Santos
Nick234

(usa Arch Linux)

Enviado em 31/12/2008 - 20:09h

Bem, rapaz, esse sed é muito complicado...

mas tem alguma maneira de apenas adicionar uma coluna...

agora tenho outro arquivo que só tenho os caminhos, premiso apenas adicionar o rm

/caminho/path

tem que ficar assim:

rm /caminho/path


4. Re: Trabalhar com colunas em Shell Script

Alexandre Santos
Nick234

(usa Arch Linux)

Enviado em 01/01/2009 - 15:49h

consegui com awk...

para adicionar o rm na frente usei o seguinte comando...

$ awk "{print "rm "$0}" input.txt output.txt

abraços


5. Re: Trabalhar com colunas em Shell Script

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 02/01/2009 - 02:33h

------------
$ awk "{print "rm "$0}" input.txt output.txt
------------

Versão sed:

$ sed 's/^/rm /g' < input.txt > output.txt

O sed não é tão complicado assim! =)

Falou!!!


6. Re: Trabalhar com colunas em Shell Script

laurence andrews ottoboni
laurence123

(usa Ubuntu)

Enviado em 22/08/2014 - 14:09h

E como faz para excluir a primeira coluna?
estou tentando esses comandos e apenas reovendo o "rm" mais não ta dando certo
as colunas devem estar separadas por TABS ou ESPAÇOS?


7. Shell Script

Cleber Pereira da Silva
ocleber

(usa Debian)

Enviado em 20/11/2014 - 01:09h

Apenas para remover uma coluna, vc pode usar um cut.
Veja o exemplo do arquivo.txt:
#cat arquivo.txt
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

Agora usando o cut,
onde depois da opção -d(delimiter) usa-se os ':',
mas pode ser qualquer char, como um espaço, tab etc
depois com a opção -f(fields) vc vai enumerando os campos que quer.
Acredito ser a forma mais simples de fazer, tem outras opções com o awk por exemplo....

#cut -d':' -f2,3,4,5,6,7,8 arquivo.txt
x:0:0:root:/root:/bin/bash
x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
x:2:2:bin:/bin:/usr/sbin/nologin
x:3:3:sys:/dev:/usr/sbin/nologin
x:4:65534:sync:/bin:/bin/sync


Espero ter ajudado e entendido sua dúvida.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts