Concatener horizontalement des fichiers

Concatener horizontalement des fichiers - Linux et OS Alternatifs

Marsh Posté le 11-01-2006 à 16:19:27    

Bonjour les pros,
 
Je souhaite concatener plusieurs fichiers dans un seul, mais comme c'est trop simple, j'aurai besoin de les concatener horizontalement... je m'explique:
j'ai un fichier qui contient:
A
B
C
et un autre qui contient:
1
2
3
et bien je voudrais obtenir:
A 1
B 2
C 3
mais avec plus que deux fichiers (ou alors a repeter la commander avec un script, c'est pas un probleme).
Y a t-il une commande qui permet de faire ca simplement et rapidement?
Tout ca pour remettre cote a cote des infos sorties d'un sar et me permettre de faire des jolis graphes.
 
Merci,
Max

Reply

Marsh Posté le 11-01-2006 à 16:19:27   

Reply

Marsh Posté le 11-01-2006 à 16:21:18    

Salut
 
Renseigne toi sur awk
 
a+
 
foiro

Reply

Marsh Posté le 11-01-2006 à 16:21:43    

avec ultraedit [:dawa]


---------------
:: Light is Right ::
Reply

Marsh Posté le 11-01-2006 à 16:27:31    

Merci pour awk je connais, mais le but c'est de le faire souvent sur pas mal de machines, donc si une commande existait ca serait pas mal du tout et ca me simplifierait grandement la vie.
maintenant s'il n'existe rien, ben je scripterai...
 
Concernant ultraedit euh... comment dire... non!
 
ah oui parceque j'ai pas dit mais ca sera sur des machines linux/unix...
 
Merci quand meme ;)

Reply

Marsh Posté le 11-01-2006 à 16:33:11    

moue à ma connaissance il n'y a pas une commande qui fait ça spécifiquement :/
d'ailleurs c'est vrai que j'en ai déjà eu besoin et j'ai dû scripter ou utiliser ultraedit


---------------
:: Light is Right ::
Reply

Marsh Posté le 11-01-2006 à 22:05:40    

allez hop, je me suis amusé à le faire en python.
 
#!/usr/bin/python
import sys
l = []
for i in range(1, sys.argv.__len__()):
    l.append(open(sys.argv[i]).readlines())
nlinesmax = map(lambda x: x.__len__(), l)
nlinesmax.sort()
nlinesmax = nlinesmax[-1]
for i in range(nlinesmax): #boucle lignes
    for j in range(l.__len__()): # boucle fichiers
        try: sys.stdout.write(l[j][i][:-1])
        except: pass
    print
 
et ça s'utilise comme ça : machin.py fichier1 fichier2 fichier3...

Reply

Marsh Posté le 12-01-2006 à 14:22:42    

:love: Merci bien m'sieur, tu m'economises un mal de tete ;)
faudrait qu'un jour je m'y mette au python parceque ca a l'air bien sympathique.
En tout cas merci, ca marche au poil!!!

Reply

Marsh Posté le 12-01-2006 à 14:40:13    

c'est pas très beau comme langage à 1ère vue :o


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-01-2006 à 15:02:10    

Tomate a écrit :

c'est pas très beau comme langage à 1ère vue :o


la moindre des politesses serait de nous permettre la comparaison, en nous montrant ce que ça donne dans un autre langage plus "beau"...  :na:

Reply

Marsh Posté le 12-01-2006 à 15:17:59    

paco81 a écrit :

la moindre des politesses serait de nous permettre la comparaison, en nous montrant ce que ça donne dans un autre langage plus "beau"...  :na:


[:ddr555]
 
vous imaginez tous très bien ça en perl non ? :o


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-01-2006 à 15:17:59   

Reply

Marsh Posté le 12-01-2006 à 15:31:39    

en pascal?? :lol:

Reply

Marsh Posté le 12-01-2006 à 15:49:22    

Tomate a écrit :

[:ddr555]
 
vous imaginez tous très bien ça en perl non ? :o


 
ouais, ça donne un truc comme ça : http://www.99-bottles-of-beer.net/ [...] l-737.html
non ?  :lol:

Reply

Marsh Posté le 12-01-2006 à 15:51:03    

En awk :

Code :
  1. awk '{l[FNR] = l[FNR] $0} END { for(i in l) print l[i] }'


Reply

Marsh Posté le 12-01-2006 à 15:52:45    

paco81 a écrit :

ouais, ça donne un truc comme ça : http://www.99-bottles-of-beer.net/ [...] l-737.html
non ?  :lol:


[:rofl]


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-01-2006 à 16:56:57    

Salut
 
Le pb c qu'en perl c tres tres lent. J'ai fait de la concat de fichiers dans ce language et en java ca va 10000 fois plus vite a peu pres. Ptet que mon code était pas optimisé, mais en tt cas je déconseille.
 
a+
 
foiro

Reply

Marsh Posté le 12-01-2006 à 17:00:48    

ça dépend de la taille des fichiers bien sûr


---------------
:: Light is Right ::
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed