Como juntar varios arquivos em 1 só

1. Como juntar varios arquivos em 1 só

eduardo
edublind

(usa Debian)

Enviado em 04/06/2012 - 22:56h

Galera
Eu tenho um script simples e nao tenho muito conhecimento em shell
#!/bin/bash
FILE=`ls *.log | egrep -v "Wwn|switchshow"`
egrep -i "portFcPortCmdShow --slot" ED8510_B.log > portfc.txt
egrep -i "portState:" ED8510_B.log > portstate.txt
egrep -i "portPhys: " ED8510_B.log > portPhys.txt
egrep -i "portId:" ED8510_B.log > portid.txt
egrep -i -A 1 "portWwn of device" ED8510_B.log > Devices.txt
egrep -i "portWwn:" ED8510_B.log > portwwn.txt
grep -i "portshow " ED8510_B.log > ptshowsj.txt
ptcount=`grep -c "portshow" ptshowsj.txt`
let result="$ptcount - 8"
tail -n $result ptshowsj.txt > portshow.txt

o que eu gostaria de saber é como juntar os arquivos .txt gerados desses filtros "grep *" em um arquivo na seguinte ordem
portFcPortCmdShow portState portPhys portId portWwn portshow

tentei com join e tudo mas não estou conseguindo
Vlw



  


2. CAT

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 05/06/2012 - 01:20h

Use o cat para juntar ex:

cat 1.txt 2.txt 3.txt 4.txt > 5.txt


Vai juntar o conteúdo dos arquivos na ordem que for adicionado e vai jogar para a saida > 5.txt


3. Re: Como juntar varios arquivos em 1 só

Jaclinton Peixoto
jaclinton

(usa Debian)

Enviado em 19/10/2016 - 00:26h

Você pode usar o comando join. Que é o comando correto para juntar arquivos. E sua sintaxe é bem simples. Segue exemplo abaixo:

join -1 1 -2 2 arquivo1 arquivo2

A nomeclatura do comando é assim: join -1 <CAMPO> -2 <CAMPO> <ARQUIVO1> <ARQUIVO2>



4. Re: Como juntar varios arquivos em 1 só

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 11:56h

edublind escreveu:

Galera
Eu tenho um script simples e nao tenho muito conhecimento em shell
#!/bin/bash
FILE=`ls *.log | egrep -v "Wwn|switchshow"`
egrep -i "portFcPortCmdShow --slot" ED8510_B.log > portfc.txt
egrep -i "portState:" ED8510_B.log > portstate.txt
egrep -i "portPhys: " ED8510_B.log > portPhys.txt
egrep -i "portId:" ED8510_B.log > portid.txt
egrep -i -A 1 "portWwn of device" ED8510_B.log > Devices.txt
egrep -i "portWwn:" ED8510_B.log > portwwn.txt
grep -i "portshow " ED8510_B.log > ptshowsj.txt
ptcount=`grep -c "portshow" ptshowsj.txt`
let result="$ptcount - 8"
tail -n $result ptshowsj.txt > portshow.txt

o que eu gostaria de saber é como juntar os arquivos .txt gerados desses filtros "grep *" em um arquivo na seguinte ordem
portFcPortCmdShow portState portPhys portId portWwn portshow

tentei com join e tudo mas não estou conseguindo
Vlw

====================================================================
Sugestão:
Ao invés de "direcionar" a saída do "grep" para uma arquivo...
Poderia fazer um "laço" em "ED8510_B.log", ler "linha alinha", gerar variáveis, e
echo ""$var1" "$var2" "$var3" . . . " >> ARQUIVO FINAL

Acredito que é possível "otimizar" esse SCRIPT, tem muito "egrep" repetido . . .
Se tiver interesse, manifeste-se . . . :)
====================================================================
Att.:
Marcelo oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts