[NOOB] Shell avec plusieurs opérations
Résolu
Poireau
-
poireau -
poireau -
Bonjour à tous,
J'ai une petite question de noob mais bon, on a tous commencé un jour non ?
Je voudrais faire un shell qui concatene les fichiers qui s'appellent A110.txt A111.txt etc . et qui ecrit le résulat dans un autre fichier...
je commence comme ça :
Ca me concatene bien, mais la sortie ne me sort que ce qui se trouve sur le premier fichier...
j'ai essayé de faire un sous shell avec les paranthese mais ça ne donne rien.
De la même façon j'ai essayé if et else, pareil nada...
Bref... >Snif!.txt
J'ai une petite question de noob mais bon, on a tous commencé un jour non ?
Je voudrais faire un shell qui concatene les fichiers qui s'appellent A110.txt A111.txt etc . et qui ecrit le résulat dans un autre fichier...
je commence comme ça :
#!/bin/bash for i in A*.txt do cat $i>resultat.txt
Ca me concatene bien, mais la sortie ne me sort que ce qui se trouve sur le premier fichier...
j'ai essayé de faire un sous shell avec les paranthese mais ça ne donne rien.
De la même façon j'ai essayé if et else, pareil nada...
Bref... >Snif!.txt
A voir également:
- [NOOB] Shell avec plusieurs opérations
- Classic shell - Télécharger - Personnalisation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Shell startup windows 10 - Guide
- Shell infrastructure host c'est quoi - Guide
- Shell do while ✓ - Forum Shell
7 réponses
Salut,
Je pense que tu trouves juste le contenu de dernier fichier
La rédirection > écrase le contenu à chauqe accès
Essaie >> au lieu de >
Je pense que tu trouves juste le contenu de dernier fichier
La rédirection > écrase le contenu à chauqe accès
Essaie >> au lieu de >
Ca marche,
Tu es juste un génie !! Quand je pense que je viens de passer une nuit blanche dessus...
merci =)
Tu es juste un génie !! Quand je pense que je viens de passer une nuit blanche dessus...
merci =)
Autre petite question (désolé ^^)
le fichier généré contient des ligne qui commencent par "100", "101" etc.
je voubrait faire un grep dynamique de type :
mais comment puis je préciser le grep ?? grep "[0-9]" fichier.txt |uniq -c |sort -r|cut -f2>N[0-9].txt; ??
Ca me semble un peu abstrait...
le fichier généré contient des ligne qui commencent par "100", "101" etc.
je voubrait faire un grep dynamique de type :
grep "100" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt; grep "101" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt; etc
mais comment puis je préciser le grep ?? grep "[0-9]" fichier.txt |uniq -c |sort -r|cut -f2>N[0-9].txt; ??
Ca me semble un peu abstrait...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Pour ton 1er problème, un simple :
Pour ton 1er problème, un simple :
cat A*.txt > resultat.txtaurait amplement suffit ;-))
Avant tout, merci pour vos reponses !!
en fait
Pour ce qui concerne mon 2eme soucis je veux faire un grep dans une boucle en fait. Je n'etais peux etre pas tres clair dans mon explication
quand je fait
Ca marche mais j'ai a peu près 8 000 grep a faire donc c'est un peu long.
Donc je cherche à faire une boucle mais je ne maitrise pas tres bien le langage unix.... (et poutant je potasse !!)
j'aimerais faire quelque chose de ce type :
mais ca ne donne rien....
Je precise que chaque ligne de mes fichiers commencent par des chiifres, cequi explique "^[0-9]" :)
Est ce que j'ai fait une faute d'orthographe dans ma boucle ??
en fait
cat A*.txt > resultat.txtne fonctionne pas a cause de la boucle, les résultats ne s'implementent pas mais en utilisant '>>' ca marche =)
Pour ce qui concerne mon 2eme soucis je veux faire un grep dans une boucle en fait. Je n'etais peux etre pas tres clair dans mon explication
quand je fait
grep "100" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt; grep "101" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt; grep "102" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt; grep "103" fichier.txt |uniq -c |sort -r|cut -f2>N100.txt;
Ca marche mais j'ai a peu près 8 000 grep a faire donc c'est un peu long.
Donc je cherche à faire une boucle mais je ne maitrise pas tres bien le langage unix.... (et poutant je potasse !!)
j'aimerais faire quelque chose de ce type :
for i in dossier/A*.csv do grep "^[0-9]" head.txt | sort >B*.csv done
mais ca ne donne rien....
Je precise que chaque ligne de mes fichiers commencent par des chiifres, cequi explique "^[0-9]" :)
Est ce que j'ai fait une faute d'orthographe dans ma boucle ??
Re,
for i in $(ls dossier/A*.csv) do grep "^[0-9]" $i | sort >B*.csv done
Re,
Ben, oui, je t'ai demandé ici http://www.commentcamarche.net/forum/affich 10739774 noob shell avec plusieurs operations?#4
Mais tu n'as jamais répondu
Ben, oui, je t'ai demandé ici http://www.commentcamarche.net/forum/affich 10739774 noob shell avec plusieurs operations?#4
Mais tu n'as jamais répondu
J'ai enfin trouvé la solution dc je la poste !
Rappel : le but est de prendre les numero de chaque ligne (qui correspondent a une reference qui peut se repeter) d'un fichier de les classer et le le mettre dans un doc qui s'apelle : le numero du bebut de la ligne.txt.
voilou, merci a ceux qui m'ont aidé =)
Rappel : le but est de prendre les numero de chaque ligne (qui correspondent a une reference qui peut se repeter) d'un fichier de les classer et le le mettre dans un doc qui s'apelle : le numero du bebut de la ligne.txt.
for i in $(cat monfichier.txt) do > nada$i.txt done # ca genere des fichier vides for i in $(ls "le dossier ou se trouvent les fichiers" |grep "nada" | sed 's/nada//g") do cat monfichier.txt |grep "$i" >> Final$i.txt
voilou, merci a ceux qui m'ont aidé =)