Script unix sh
Fermé
clafister
Messages postés
3
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
4 janvier 2007
-
2 janv. 2007 à 15:06
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 janv. 2007 à 19:31
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 janv. 2007 à 19:31
A voir également:
- Script unix sh
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Unix ipconfig ✓ - Forum Linux / Unix
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
2 janv. 2007 à 21:23
2 janv. 2007 à 21:23
Salut,
Tiens déjà pour ton premier problème :
Tiens déjà pour ton premier problème :
var="NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier.pdf" echo ${var##*_} NomDufichier.pdf;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
4 janv. 2007 à 07:36
4 janv. 2007 à 07:36
Re-
Voilà un exemple non optimisé (il y a surement moyen de faire plus concis) :
Voilà un exemple non optimisé (il y a surement moyen de faire plus concis) :
[jp@MDK tmpfs]$ cat essai.sh #! /bin/bash var="NomduNiveau1_NomduNiveau2_NomduNiveau3_NomduNiveau4_NomDufichier.pdf" count=1 set $(echo ${var%_*}| tr '_' ' ') && echo $* | tr -s ' ' '\n' > tmp.txt while read param do set niveau"$count"="$param" echo niveau"$count"="$param" count=$(expr $count + 1) done < tmp.txt rm -f tmp.txt [jp@MDK tmpfs]$ sh essai.sh niveau1=NomduNiveau1 niveau2=NomduNiveau2 niveau3=NomduNiveau3 niveau4=NomduNiveau4 [jp@MDK tmpfs]$;-))
clafister
Messages postés
3
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
4 janvier 2007
4 janv. 2007 à 13:56
4 janv. 2007 à 13:56
Merci pour cette proposition. Je vois l'idée donnée.
Reste à l'intégrer dans mon script qui traite tous les fichiers dans un réperoire et les redispatche dans l'arborescence adhoc (création éventuelle).
:D
Reste à l'intégrer dans mon script qui traite tous les fichiers dans un réperoire et les redispatche dans l'arborescence adhoc (création éventuelle).
:D
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
4 janv. 2007 à 19:31
4 janv. 2007 à 19:31
Re-
[jp@MDK tmpfs]$ cat essai.sh #! /bin/bash cd /home/jp/tmpfs/ for fich in * do name=$(echo ${fich##*_}) rep=$(echo ${fich%_*}| tr '_' '/') mkdir -p "$rep" 2>/dev/null cp "$fich" "$rep/$name" 2>/dev/null done [jp@MDK tmpfs]$ ls -1 NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier1.pdf NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier2.pdf NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier3.pdf NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier4.pdf NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier5.pdf NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier6.pdf [jp@MDK tmpfs]$ sh essai.sh && ls -R .: NomduNiveau1/ NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier1.pdf NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier2.pdf NomduNiveau1_NomduNiveau2_NomduNiveau3_NomDufichier3.pdf NomduNiveau4/ NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier4.pdf NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier5.pdf NomduNiveau4_NomduNiveau5_NomduNiveau6_NomDufichier6.pdf ./NomduNiveau1: NomduNiveau2/ ./NomduNiveau1/NomduNiveau2: NomduNiveau3/ ./NomduNiveau1/NomduNiveau2/NomduNiveau3: NomDufichier1.pdf NomDufichier2.pdf NomDufichier3.pdf ./NomduNiveau4: NomduNiveau5/ ./NomduNiveau4/NomduNiveau5: NomduNiveau6/ ./NomduNiveau4/NomduNiveau5/NomduNiveau6: NomDufichier4.pdf NomDufichier5.pdf NomDufichier6.pdf [jp@MDK tmpfs]$;-))
3 janv. 2007 à 09:53
comment récupérer chacun des mots entre _ et initialiser autant de variables ?