|
Bas de page | |
---|---|
Auteur | Sujet : Script pour la différence entre 2 données à leur path directory |
Publicité | Posté le 08-10-2012 à 17:07:23 |
Abianus |
Ok, merci. J'avais vu les balises code pour C/C++ du coup je me suis dit que pour le code script, ça devait pas ètre ça.
Oui, c'est un peu compliqué ...... En gros, je vais essayer de réexpliquer :s Ensuite, j'ai pris les 12 derniers mots de chaque données des 3 fichiers précédents que j'ai créé sur le Bureau(de chaques lignes) que j'ai mis dans 3 autres fichiers. Ensuite, je voulais faire ce que tu me dis :
Mais je n'y arrivais pas, j'arrivais juste à trouver les différences entre les 2 fichiers avec la commande "diff" Après avoir fait ce que tu dis, c'est à dire la vérification, je veux faire un "diff" entre les mêmes lignes que j'ai vérifier mais qui sont en local sur mon pc car la j'ai vérifié s'il y avait les mêmes données dans 2 fichiers sur mon Bureau mais qui à la base ont été importé depuis "local/tmp/1/cwright/DB/GMACMD/GMACMDdata/OSUdata/DWA_Disk_1/atlantic/locdyn/rcm01141.str" par exemple.... Et c'est la que je bloque car je selon ton idée :
file1 et file2 ont comme données comme: "DWA_Disk_1/atlantic/polymode/rcm00657.str" ... donc c'est pour ça que je me met içi cd "/local/tmp/1/cwright/DB/GMACMD/GMACMDdata/OSUdata;" Est-ce que tu as mieux compris ? Merci de ton aide Message édité par Abianus le 09-10-2012 à 11:37:50 |
Profil supprimé | Posté le 09-10-2012 à 11:11:52 le recours aux fichiers list_2... ne me paraît pas nécessaire:
avec ça tu fais un grep sur les fichiers list_Disk(n)/Other Message édité par Profil supprimé le 09-10-2012 à 11:40:02 |
Abianus |
Ah ben oui peut-ètre, merci Ta solution est bien mais ce que je veux vérifier c'est la fin de chaque ligne comme "rcm00657.str" de chaque fichiers ... Merci Je vais tester ce que tu m'as dis. Bon j'ai essayé ce que j'ai écris et le soucis c'est que ça lit bien ligne par ligne mais il me renvoit sur genre 50 lignes d'affilées : Message édité par Abianus le 09-10-2012 à 11:29:35 |
Profil supprimé | Posté le 09-10-2012 à 11:35:29
ça, c'est à cause des espaces autour du signe égal des assignations des variabes x et y: il ne doit pas y avoir d'espaces pour les assignations;
les guillemets sont superflus, on est sûr que la variable n'est composée que d'un seul mot, puisque c'est un nombre entier.
Message édité par Profil supprimé le 09-10-2012 à 11:39:00 |
Abianus |
Message édité par Abianus le 09-10-2012 à 11:48:25 |
Nukolau | Il existe une commande qui permet de comparer deux fichiers et de sortir les lignes presentes dans un fichier et pas dans l'autre. Il s'agit de la commande "comm".
affiche les lignes qui ne sont pas communes (donc que dans le fichier 1 ou que dans le fichier 2). Au final, je ferais quelque chose du genre
Les sed permettent de supprimer les espaces et tabulations (il s'agit du ^I, que tu obtiens en faisant la combinaison de touches CTL+V CTRL+I dans un vi) en début de ligne, la commande comm mettant les differences de la colonne 2 après une tabulations. Ce n'est pas du tout obligatoire surtout si tu veux savori dans quel répertoire il manque le fichier Remarque : suivant le find utilisé, l'option -printf n'existe pas forcément. Dans ce cas, le plus imple est d'ajouter un cut, si il n'y a pas de sous-repertoire, un awk sinon :
Message édité par Nukolau le 09-10-2012 à 18:10:32 |
Publicité | Posté le 09-10-2012 à 18:01:33 |
Abianus | Merci pour toutes ces informations ^^
|
Abianus | Bon, je viens tester ce que tu m'as dis et c'est super.
Il me met ça : Je comprends pas trop ce que ça veut dire vu que j'ai jamais utilisé la commande. J'ai regardé le man comm pour voir ce que voulais dire le résultat obtenu dans le diff_disk1_disk2.txt mais j'ai encore du mal à comprendre ^^ Si j'ai bien compris, il y a 2 colonnes. La première est pour le 1er fichier et la 2ème pour le 2ème fichier. Mais je comprends pas le résultat obtenu : au début de mon fichier, j'ai toutes le début des premières données de fichier2 dans la 2ème colonne, puis après j'ai celle de fichier1, puis après fichier 2 et après finalement, fichier1 ... Pourrais-tu m'expliquer assez clairement ce que ça veut dire car là je comprends pas trop ce que ça veut dire Oo Message édité par Abianus le 10-10-2012 à 13:53:26 |
Nukolau | En fait la commande comm affiche 3 colonnes :
|
Abianus | Finalement la commande comm est bien, je veux bien vérifier si la ligne 1 de fichier 1 est dans les lignes de fichier 2 mais ENSUITE, je ne veux pas faire la commande "comm" pour ces 2 fichiers là.
|
Profil supprimé | Posté le 10-10-2012 à 17:36:20 j'ai l'impression que tu t'embêtes beaucoup avec des fichiers courts et des fichiers longs, qui te font faire deux fois ± le même boulot pour finalement vérifier que les fichiers *.str sont ou pas identiques:
la fonction status doit être modifiée pour utiliser diff ou comm (as-tu besoin d'afficher les différences, ou seulement d'effectuer une action si les fichiers sont différents ?) |
Abianus | Salut,
|
Abianus | Bon j'ai essayé de comprendre ce que tu voulais dire.
|
Abianus | Bon, on dirait que je vois le bout du tunnel. J'ai fait ça mais j'ai un tout petit soucis.
J'arrive bien à comparer les lignes mais quand il y a par exemple "rcm01457.str" qui est dans DWA_Disk_1 et Other, et bien il me dit qu'il n'y a pas de ficheir car il va chercher dans: Dans file1, j'ai les données de DWA_Disk_1 avec le path directory commançant par DWA_Disk_1, par exemple : "DWA_Disk_1/atlantic/locdyn/rcm01457.str" Mais quand j'essaye de mettre dir1="$data/$file1", ça ne marche pas car file1="${HOME}/Bureau/list_Disk_1.txt" Cependant, je me vois mal refaire un while read line suivit d'un grep juste pour ça .... Vous auriez une idée? Merci Message édité par Abianus le 11-10-2012 à 13:04:50 |
Sujets relatifs | |
---|---|
Script pour obtenir le nom, l'IP et la MAc des PC du réseau | Cacti : graph du résultat d'un script shell d'un hôte distant |
Script KSH et portée des variables : help | Script ksh pour Solaris |
Aide sur script bash | Aide pour script curl |
Script de post installation dans un RPM | Script Bash pour récuperer seulement l'adresse IP |
Données SMART: Faut-il s'affoler ? | |
Plus de sujets relatifs à : Script pour la différence entre 2 données à leur path directory |