Rechercher : dans
Par :

2 fichiers cote à cote en shell

Dernière réponse le 30 avr 2009 à 13:55:22 claudeJ, le 30 avr 2009 à 01:12:14 
 Signaler ce message aux modérateurs

Bonjour,
Bonjour je cherche a faire un script en shell qui affiche cote à cote le meme nombre de caracteres de 2 fichiers.

Exemple:

fichier a.txt
bonjour le site du chat

fichier b.txt
ce forum et vraiment pratique

résultat après passage a la moulinette par le script

bonjour le|ce forum e
site du c|t vraiment
hat | pratique


j'ai trouvé un sujet sur ccm ou on parle de la commande fold -w 10 fichier.txt permet d'afficher un certains nombre de caractère.
Je suppose donc qu'il faut couplé ca à une boucle if ou peut etre que sed/awk peut etre utilisé ?

merci

Configuration: Linux
Firefox 3.0.10

Meilleures réponses pour « 2 fichiers cote à cote en shell » dans :
[Shell] Créer un fichier vide VoirPour créer un fichier vide, il vous suffit de taper la commande suivante : > fichier Vous pouvez également utiliser la commande touch : touch fichier
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Apache - Les fichiers .htaccess VoirLes fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire...
UNIX - Les fichiers VoirIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...

1

mamiemando, le 30 avr 2009 à 02:00:30

En fait tout dépend de ce que tu veux faire. Si le but c'est de comparer les fichiers peut être que ce que tu cherches est un diff (c'est typiquement ce qu'on utilise pour comparer deux fichier). A noter l'excellent kompare pour comparer deux fichiers.
http://blog.thedebianuser.org/wp-content/uploads/2006/08/kom­parepackagelists.png

Si les deux fichiers n'ont rien à voir mais que le placement des caractères est important, je vois bien une solution via vim à coup de vertical split :

# Configuration data is parsed|# System-wide .bashrc file for
 as follows:                  | interactive bash(1) shells.
#  1. command line options    |
#  2. user-specific file      |# To enable the settings / com
#  3. system-wide file        |mands in this file for login s
# Any configuration value is o|hells as well,
nly changed the first time it |# this file has to be sourced
is set.                       |in /etc/profile.
# Thus, host-specific definiti|
ons should be at the beginning|# If not running interactively
 of the                       |, don't do anything
# configuration file, and defa|[ -z "$PS1" ] && return
ults at the end.              |
                              |# check the window size after
# Site-wide defaults for some |each command and, if necessary
commonly used options.  For a |,
comprehensive                 |# update the values of LINES a
# list of available options, t|nd COLUMNS.
heir meanings and defaults, pl|shopt -s checkwinsize
ease see the                  |
<h_config [RO] 16,1        14% <h.bashrc [RO] 1,1        Haut

Ici j'ai dans la colonne de gauche le fichier /etc/ssh/ssh_config et à droite le fichier /etc/bash.bashrc. J'ai obtenu ce résultat via un :
vim /etc/ssh/ssh_config

Une fois le fichier ouvert, pour ouvrir le second : echap :vs /etc/bash.bashrc. Il ne reste plus qu'à copier coller le tout à la souris (sélectionne le texte pour le copier, pour le coller utilise le clic du milieu/de la molette).

Petites précisions :
1) La disposition du texte dépend de la taille de la console.
2) Je pense qu'il est possible de déplacer la barre médiane mais je ne sais pas comment on fait. Le plus simple consiste à ouvrir vim dans un terminal, faire le vertical split, puis redimensionner la console si tu veux que les deux colonnes soient de tailles différentes.
3) Pour quitter : echap :q!
4) Tu peux déplacer le curseur avec les flèches et le changer de split avec un ctrl w w

Bonne chance

Répondre à mamiemando

2

jipicy, le 30 avr 2009 à 10:34:27

Salut,

[tmpfs]$ cat fich1
bonjour le site du chat

[tmpfs]$ cat fich2
ce forum et vraiment pratique

[tmpfs]$ fold -w 10 fich1 > tmp1

[tmpfs]$ fold -w 10 fich2 > tmp2

[tmpfs]$ paste -d "|" tmp*
bonjour le|ce forum e
 site du c|t vraiment
hat| pratique

[tmpfs]$
,-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

3

mamiemando, le 30 avr 2009 à 12:35:46

Très instructif :-) Je ne connaissais pas paste.Et ça ressemble pas à une énorme bidouille scandaleuse comme j'ai proposé ;-)

Répondre à mamiemando

4

jipicy, le 30 avr 2009 à 13:08:23

;-))

C'est dingue le nombre de commandes inconnues (et au combien utiles au demeurant) dont regorgent les systèmes Unixes et dérivés ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

5

 dubcek, le 30 avr 2009 à 13:55:22

Hello
ou avec pr

$ cat f1.txt
bonjour le site du chat
$ cat f2.txt
ce forum et vraiment pratique
$ fold -w 5 f1.txt > f11.txt
$ fold -w 5 f2.txt > f22.txt
$  pr -T -m -w12 -s'|'  f11.txt f22.txt
bonjo|ce fo
ur le|rum e
 site|t vra
 du c|iment
hat  | prat
     |ique
     |

Répondre à dubcek
Collection CommentÇaMarche.net