Analyse du nom d'un fichier en shell/Bash ...
Fermé
cobra85
Messages postés
132
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
15 novembre 2014
-
16 sept. 2014 à 00:06
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 18 sept. 2014 à 09:04
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 18 sept. 2014 à 09:04
A voir également:
- Analyse du nom d'un fichier en shell/Bash ...
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Fichier iso - Guide
5 réponses
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
16 sept. 2014 à 10:48
16 sept. 2014 à 10:48
hello
peut-on avoir un exemple avant - après ?
peut-on avoir un exemple avant - après ?
cobra85
Messages postés
132
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
15 novembre 2014
3
17 sept. 2014 à 00:30
17 sept. 2014 à 00:30
Salut,
J'aurais du me relire parce que tout n'est pas français dans ce que j'ai écris !!
En faite, je souhaite pouvoir mettre le contenu respectif de nom_n°X_taille1_nom.txt et nom_n°X_taille1_nom_est.txt dans une table avec le même ID.
J'ai essayé avec la commande "cat", mais il me met le contenu de l'ensemble des fichiers nom_n°X_taille1_nom.txt dans une colonne et l'ensemble des fichiers nom_n°X_taille1_nom_est.txt dans une autre colonne table.
Pour pallier à cela le temps de trouver une solution, j'ai décider de mettre le chemin de mon fichier dans la base à la place du contenu; pour cela j'ai fait le script suivant: (que j'ai tourné dans tout les sens sans succès)
Le code fonctionne à peut prêt, sauf qu'a un moment donné, il me croise les valeurs (en gras, les ligne fausse):
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
2 1 nom_n°1_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
3 1 nom_n°2_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
4 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
comment puis-je faire pour la premiere partie ou pour résoudre le code de la seconde pour avoir:
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
2 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
...
Merci
J'aurais du me relire parce que tout n'est pas français dans ce que j'ai écris !!
En faite, je souhaite pouvoir mettre le contenu respectif de nom_n°X_taille1_nom.txt et nom_n°X_taille1_nom_est.txt dans une table avec le même ID.
J'ai essayé avec la commande "cat", mais il me met le contenu de l'ensemble des fichiers nom_n°X_taille1_nom.txt dans une colonne et l'ensemble des fichiers nom_n°X_taille1_nom_est.txt dans une autre colonne table.
Pour pallier à cela le temps de trouver une solution, j'ai décider de mettre le chemin de mon fichier dans la base à la place du contenu; pour cela j'ai fait le script suivant: (que j'ai tourné dans tout les sens sans succès)
for fich1 in *nom.txt; do
echo "$fich1"
var1=$fich1
done
#Liste l'ensemble des fichier ayant pour extension "est.txt"
for fich in *est.txt; do
echo "$fich"
var2=$fich
#Insertion dans la base SQL
TEMP='mysql --user=root --password=xxxxxxx <<MySCRIPT
INSERT INTO test.taille VALUES ('', '1', '$var1', '$var2', '');
MySCRIPT'done
Le code fonctionne à peut prêt, sauf qu'a un moment donné, il me croise les valeurs (en gras, les ligne fausse):
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
2 1 nom_n°1_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
3 1 nom_n°2_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
4 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
comment puis-je faire pour la premiere partie ou pour résoudre le code de la seconde pour avoir:
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
2 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
...
Merci
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
17 sept. 2014 à 10:19
17 sept. 2014 à 10:19
comme ça ?
$ cat liste
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
2 1 nom_n°1_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
3 1 nom_n°2_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
4 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
$ awk -F _ '$2 == $5 {print}' liste
1 1 nom_n°1_taille1_nom.txt nom_n°1_taille1_nom_est.txt 0
4 1 nom_n°2_taille1_nom.txt nom_n°2_taille1_nom_est.txt 0
cobra85
Messages postés
132
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
15 novembre 2014
3
17 sept. 2014 à 23:10
17 sept. 2014 à 23:10
Salut,
Il faudrait que dans la base MySQL, les noms des fichiers ou contenus des fichiers soit disposés comme ceci:
+---+------------+--------------------------------+--------------------------------------+--+
| ID | champ1 | champ2 | champ3 | n |
+---+------------+--------------------------------+--------------------------------------+---+
| 1 | 1 |nom_n°1_taille1_nom.txt |nom_n°1_taille1_nom_est.txt | 0 |
| 1 | 1 |nom_n°2_taille1_nom.txt |nom_n°2_taille1_nom_est.txt | 0 |
| 1 | 1 |nom_n°3_taille1_nom.txt |nom_n°3_taille1_nom_est.txt | 0 |
....
Il faudrait que dans la base MySQL, les noms des fichiers ou contenus des fichiers soit disposés comme ceci:
+---+------------+--------------------------------+--------------------------------------+--+
| ID | champ1 | champ2 | champ3 | n |
+---+------------+--------------------------------+--------------------------------------+---+
| 1 | 1 |nom_n°1_taille1_nom.txt |nom_n°1_taille1_nom_est.txt | 0 |
| 1 | 1 |nom_n°2_taille1_nom.txt |nom_n°2_taille1_nom_est.txt | 0 |
| 1 | 1 |nom_n°3_taille1_nom.txt |nom_n°3_taille1_nom_est.txt | 0 |
....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
18 sept. 2014 à 09:04
18 sept. 2014 à 09:04
je ne connais pas MySQL, montre le code nécéssaire à ajouter au print, sachant que le nom du fichier est $0