Grep unix
Résolu/Fermé
balou311
Messages postés
765
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
21 septembre 2006
-
16 janv. 2006 à 11:38
Edi - 22 févr. 2012 à 11:57
Edi - 22 févr. 2012 à 11:57
A voir également:
- Grep plusieurs mots
- Identifiants et mots de passe - Guide
- Mots entre amis solution - Forum jeux en ligne
- Mots entre amis sac renversé - Forum jeux en ligne
- Consultez les photos publiées sur ce réseau social. en quelques mots, donnez votre avis sur la photo publiée par cindy. quel mot apparaît ? - Forum Windows
- Qui est albot mots entre amis - Forum jeux en ligne
15 réponses
cede
Messages postés
1238
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 décembre 2008
111
16 janv. 2006 à 11:52
16 janv. 2006 à 11:52
Voilà de la doc, je te mets plusieurs chapitres en espérant que tu y trouves les infos que tu recherches :
6.1 Vue d'ensemble.
De nombreux utilitaires emploient les expressions rationnelles pour obtenir une plus grande souplesse lors de la manipulation de textes. La commande grep est un exemple d'utilitaire. Au chapitre 5, nous avons utilisé grep pour localiser de simples séquences de lettres dans un texte. A présent, nous allons effectuer des recherches grâce aux expressions rationnelles.
Dans le chapitre précédent, nous avons vu que le caractère ? pouvait être utilisé comme un motif de remplacement (ou joker) dans la mesure où il remplace n'importe quel caractère. Ce motif de remplacement fonctionne avec les noms de fichiers. Dans le cas des expressions rationnelles, le motif de remplacement est . . Aussi, pouvez-vous utiliser la commande grep .3....8 <fichier> pour trouver les numéros de téléphone à 7 chiffres, recherchés dans l'exemple décrit dans l'introduction au présent chapitre.
Les expressions rationnelles sont employées pour effectuer une recherche ligne-par-ligne. Par exemple, si les 7 caractères sont répartis en deux lignes (c'est-à-dire qu'il y a un saut de ligne au milieu), grep ne pourra pas trouver le numéro correspondant à l'expression rationnelle qui lui est passée. En général, un programme qui utilise des expressions rationnelles opère ses recherches une ligne à la fois.
Ci-dessous, se trouvent quelques expressions rationnelles qui constituent une base essentielle. Nous utilisons les commandes grep et egrep pour illustrer l'utilisation des expressions rationnelles (rappelez-vous que l'option -w vaut pour les mots, seulement). Les expressions sont insérées entre des guillemets simples ' ' pour des raisons qui seront expliquées plus tard. [NdT: la recherche de mots anglais a été conservée comme dans le document original.]
grep -w 't[a-i]e'
détecte les mots tee, the et tie. Les crochets ont une signification spéciale. Ils stipulent que la recherche se fera sur un caractère allant de a à i.
grep -w 't[i-z]e'
détecte les mots tie et toe.
grep -w 'cr[a-m]*t'
détecte les mots craft, credit et criquet. Le signe * désigne n'importe quel nombre de caractères parmi ceux cités entre crochets. En l'occurrence, il s'agit de la gamme de caractères allant de a à m.
grep -w 'kr.*n'
détecte les mots kremlin et krypton. Le signe . signifie ``tout caractère'', et le signe * signifie ``un nombre quelconque de fois''.
egrep -w '(th | sh).*rt'
détecte les mots shirt, short et thwart. Le signe | signifie qu'il faut rechercher les correspondances sur th ou sh. egrep se comporte comme grep mais pour des extended regular expressions qui permettent donc l'usage de |. [Le caractère | est un opérateur logique OU (en anglais: OR) qui permet la sélection de ce qui se trouve à gauche ou à droite de |. Ceci est également vrai dans plusieurs langages de programmation]. Notez d'une part, que les crochets indiquent une recherche sur un caractère parmi plusieurs et d'autre part, que les parenthèses sont utilisées avec l'opérateur logique | qui permet la recherche sur un mot parmi plusieurs.
grep -w 'thr[aeiou]*t'
extrait les lignes contenant les mots thread et throat. Une liste de caractères possibles peut se retrouver entre crochets.
grep -w 'thr[^a-f]*t'
sélectionne les lignes contenant les mots throughput et throat. Le signe ^ après le crochet gauche indique que la recherche porte sur tous les caractères sauf ceux qui vont de a à f. Par exemple, le mot thrift ne sera pas détecté puisqu'il contient un f.
Toutes les expressions rationnelles décrites ci-dessus permettent de rechercher des mots (en raison de l'option -w). Si l'option -w n'est pas présente, elles trouveront des correspondances sur des parties de mot, ce qui contribuera à augmenter le nombre de correspondances. Notez également que le signe * signifie ``tout nombre de caractère'', y compris ``pas de caractère''. Par exemple, t[a-i]*e pourrait détecter la séquence te, soit un t et un e sans aucun caractère entre eux.
Le plus souvent, vous utiliserez des expressions rationnelles qui effectuent des recherches sur les lignes entières. Parfois, vous préférerez détecter une ligne qui commence ou se termine par une chaîne donnée. Le caractère ^ spécifie le début d'une ligne et $ la fin. Par exemple, ^The détecte les lignes débutant par The et hack$ les lignes se terminant par hack. Par ailleurs, '^*The.*hack$' extrait les lignes de texte qui commencent par The et se finissent par hack, même si un caractère blanc est présent au début ou à la fin de la ligne. Parce que les expressions rationnelles utilisent des caractères spéciaux (. \ [ ] * + ?), ces derniers ne peuvent être utilisés directement. Cette restriction vous limite sévèrement pour la recherche de caractères tel que . , disons. Pour détecter correctement un caractère . , il convient d'utiliser la séquence \. forçant l'interprétation sur . qui, en conséquence ne sera plus considéré comme un caractère de remplacement. Donc, l'expression rationnelle monfichier.txt pourrait correspondre à monfichiertxt et à monfichier.txt. Cependant, l'expression rationnelle monfichier\.txt ne correspond qu'à monfichier.txt.
Vous pouvez utiliser la plupart des caractères spéciaux en les faisant précéder du signe backslash \ . Par exemple, vous utiliserez \[ pour détecter le caractère réel [, ainsi que \$ pour le caractère $, l'expression \\ pour \, \+ pour + et l'expression \? pour le caractère réel ? (l'usage de ? et + est expliqué ci-dessous).
6.2 La commande fgrep.
fgrep est une alternative à grep. La différence est que grep (la commande la plus utilisée) fonctionne avec des expressions rationnelles alors que fgrep recherche des chaînes littérales. En d'autres termes, vous pouvez utiliser fgrep lorsque vous désirez rechercher des chaînes ordinaires qui ne forment pas des expressions rationnelles. Cela évite l'usage du caractère d'échappement \.
6.3 Notation \{\} des expressions rationnelles.
x* permet de rechercher le caractère x de 0 à une infinité d'occurrence. Vous pouvez spécifier d'autres gammes de nombres, par exemple avec x\{3,5\} qui recherche au moins 3 mais pas plus de 5 x, c'est-à-dire, xxx, xxxx et xxxxx.
Si vous recherchez xxxx exactement, vous pouvez employer x\{4\}. Notez que x\{7,\} recherchera 7 x au moins. Ici, la borne supérieure n'est pas mentionnée.
Comme dans tous exemples précités, le caractère x peut être remplacé par une gamme de caractères (comme, par exemple, [a-k]):
grep -w 'th[a-t]\{2,3\}t'
détecte les mots theft, thirst, threat, thrift et throat.
grep -w 'th[a-t]\{4,5\}t'
détecte les mots theorist, thicket et thinnest.
6.4 Expressions rationnelles étendues + ? \<\> () | -- notation avec egrep.
Une version améliorée des expressions rationnelles permet quelques facilités qui provoqueraient des conflits avec grep mais pas avec egrep:
+
est analogue à \{1,\}. Il agit comme * mais détecte un caractère ou plus au lieu de zéro caractère ou plus.
?
est analogue à ``-1''. Il détecte zéro ou un caractère.
\< \>
peut entourer plusieurs chaînes séparées par l'opérateur | . (Seulement pour egrep).
\( \)
peut entourer plusieurs chaînes séparées par \|. (Seulement pour grep).
Les exemples suivants devraient rendre ces deux dernières notations plus claires:
grep 'trot'
détecte les mots electrotherapist, betroth et ainsi de suite mais,
grep '\<trot\>'
détecte seulement trot.
egrep -w '(this|that|c[aeiou])*t'
détecte les mots this, that, cot, coat, cat et cut.
6.5 Sous-expressions d'expressions rationnelles.
Les sous-expressions sont étudiées au chapitre 9.
Si des fois, il te fallait voir ce qu'il y a dans ce chap9, signale-le.
6.1 Vue d'ensemble.
De nombreux utilitaires emploient les expressions rationnelles pour obtenir une plus grande souplesse lors de la manipulation de textes. La commande grep est un exemple d'utilitaire. Au chapitre 5, nous avons utilisé grep pour localiser de simples séquences de lettres dans un texte. A présent, nous allons effectuer des recherches grâce aux expressions rationnelles.
Dans le chapitre précédent, nous avons vu que le caractère ? pouvait être utilisé comme un motif de remplacement (ou joker) dans la mesure où il remplace n'importe quel caractère. Ce motif de remplacement fonctionne avec les noms de fichiers. Dans le cas des expressions rationnelles, le motif de remplacement est . . Aussi, pouvez-vous utiliser la commande grep .3....8 <fichier> pour trouver les numéros de téléphone à 7 chiffres, recherchés dans l'exemple décrit dans l'introduction au présent chapitre.
Les expressions rationnelles sont employées pour effectuer une recherche ligne-par-ligne. Par exemple, si les 7 caractères sont répartis en deux lignes (c'est-à-dire qu'il y a un saut de ligne au milieu), grep ne pourra pas trouver le numéro correspondant à l'expression rationnelle qui lui est passée. En général, un programme qui utilise des expressions rationnelles opère ses recherches une ligne à la fois.
Ci-dessous, se trouvent quelques expressions rationnelles qui constituent une base essentielle. Nous utilisons les commandes grep et egrep pour illustrer l'utilisation des expressions rationnelles (rappelez-vous que l'option -w vaut pour les mots, seulement). Les expressions sont insérées entre des guillemets simples ' ' pour des raisons qui seront expliquées plus tard. [NdT: la recherche de mots anglais a été conservée comme dans le document original.]
grep -w 't[a-i]e'
détecte les mots tee, the et tie. Les crochets ont une signification spéciale. Ils stipulent que la recherche se fera sur un caractère allant de a à i.
grep -w 't[i-z]e'
détecte les mots tie et toe.
grep -w 'cr[a-m]*t'
détecte les mots craft, credit et criquet. Le signe * désigne n'importe quel nombre de caractères parmi ceux cités entre crochets. En l'occurrence, il s'agit de la gamme de caractères allant de a à m.
grep -w 'kr.*n'
détecte les mots kremlin et krypton. Le signe . signifie ``tout caractère'', et le signe * signifie ``un nombre quelconque de fois''.
egrep -w '(th | sh).*rt'
détecte les mots shirt, short et thwart. Le signe | signifie qu'il faut rechercher les correspondances sur th ou sh. egrep se comporte comme grep mais pour des extended regular expressions qui permettent donc l'usage de |. [Le caractère | est un opérateur logique OU (en anglais: OR) qui permet la sélection de ce qui se trouve à gauche ou à droite de |. Ceci est également vrai dans plusieurs langages de programmation]. Notez d'une part, que les crochets indiquent une recherche sur un caractère parmi plusieurs et d'autre part, que les parenthèses sont utilisées avec l'opérateur logique | qui permet la recherche sur un mot parmi plusieurs.
grep -w 'thr[aeiou]*t'
extrait les lignes contenant les mots thread et throat. Une liste de caractères possibles peut se retrouver entre crochets.
grep -w 'thr[^a-f]*t'
sélectionne les lignes contenant les mots throughput et throat. Le signe ^ après le crochet gauche indique que la recherche porte sur tous les caractères sauf ceux qui vont de a à f. Par exemple, le mot thrift ne sera pas détecté puisqu'il contient un f.
Toutes les expressions rationnelles décrites ci-dessus permettent de rechercher des mots (en raison de l'option -w). Si l'option -w n'est pas présente, elles trouveront des correspondances sur des parties de mot, ce qui contribuera à augmenter le nombre de correspondances. Notez également que le signe * signifie ``tout nombre de caractère'', y compris ``pas de caractère''. Par exemple, t[a-i]*e pourrait détecter la séquence te, soit un t et un e sans aucun caractère entre eux.
Le plus souvent, vous utiliserez des expressions rationnelles qui effectuent des recherches sur les lignes entières. Parfois, vous préférerez détecter une ligne qui commence ou se termine par une chaîne donnée. Le caractère ^ spécifie le début d'une ligne et $ la fin. Par exemple, ^The détecte les lignes débutant par The et hack$ les lignes se terminant par hack. Par ailleurs, '^*The.*hack$' extrait les lignes de texte qui commencent par The et se finissent par hack, même si un caractère blanc est présent au début ou à la fin de la ligne. Parce que les expressions rationnelles utilisent des caractères spéciaux (. \ [ ] * + ?), ces derniers ne peuvent être utilisés directement. Cette restriction vous limite sévèrement pour la recherche de caractères tel que . , disons. Pour détecter correctement un caractère . , il convient d'utiliser la séquence \. forçant l'interprétation sur . qui, en conséquence ne sera plus considéré comme un caractère de remplacement. Donc, l'expression rationnelle monfichier.txt pourrait correspondre à monfichiertxt et à monfichier.txt. Cependant, l'expression rationnelle monfichier\.txt ne correspond qu'à monfichier.txt.
Vous pouvez utiliser la plupart des caractères spéciaux en les faisant précéder du signe backslash \ . Par exemple, vous utiliserez \[ pour détecter le caractère réel [, ainsi que \$ pour le caractère $, l'expression \\ pour \, \+ pour + et l'expression \? pour le caractère réel ? (l'usage de ? et + est expliqué ci-dessous).
6.2 La commande fgrep.
fgrep est une alternative à grep. La différence est que grep (la commande la plus utilisée) fonctionne avec des expressions rationnelles alors que fgrep recherche des chaînes littérales. En d'autres termes, vous pouvez utiliser fgrep lorsque vous désirez rechercher des chaînes ordinaires qui ne forment pas des expressions rationnelles. Cela évite l'usage du caractère d'échappement \.
6.3 Notation \{\} des expressions rationnelles.
x* permet de rechercher le caractère x de 0 à une infinité d'occurrence. Vous pouvez spécifier d'autres gammes de nombres, par exemple avec x\{3,5\} qui recherche au moins 3 mais pas plus de 5 x, c'est-à-dire, xxx, xxxx et xxxxx.
Si vous recherchez xxxx exactement, vous pouvez employer x\{4\}. Notez que x\{7,\} recherchera 7 x au moins. Ici, la borne supérieure n'est pas mentionnée.
Comme dans tous exemples précités, le caractère x peut être remplacé par une gamme de caractères (comme, par exemple, [a-k]):
grep -w 'th[a-t]\{2,3\}t'
détecte les mots theft, thirst, threat, thrift et throat.
grep -w 'th[a-t]\{4,5\}t'
détecte les mots theorist, thicket et thinnest.
6.4 Expressions rationnelles étendues + ? \<\> () | -- notation avec egrep.
Une version améliorée des expressions rationnelles permet quelques facilités qui provoqueraient des conflits avec grep mais pas avec egrep:
+
est analogue à \{1,\}. Il agit comme * mais détecte un caractère ou plus au lieu de zéro caractère ou plus.
?
est analogue à ``-1''. Il détecte zéro ou un caractère.
\< \>
peut entourer plusieurs chaînes séparées par l'opérateur | . (Seulement pour egrep).
\( \)
peut entourer plusieurs chaînes séparées par \|. (Seulement pour grep).
Les exemples suivants devraient rendre ces deux dernières notations plus claires:
grep 'trot'
détecte les mots electrotherapist, betroth et ainsi de suite mais,
grep '\<trot\>'
détecte seulement trot.
egrep -w '(this|that|c[aeiou])*t'
détecte les mots this, that, cot, coat, cat et cut.
6.5 Sous-expressions d'expressions rationnelles.
Les sous-expressions sont étudiées au chapitre 9.
Si des fois, il te fallait voir ce qu'il y a dans ce chap9, signale-le.
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
9 sept. 2008 à 12:47
9 sept. 2008 à 12:47
Pour Balou311, même si c'est un peu tard,
Pour xavyeii:
for file in grep?; do echo $file":"$(grep -E 'blablabla|blobloblo' $file |grep -v -E 'bliblibli|blublublu'|wc -l) doneJe me suis basé sur des fichier de tests se nommant grep0 à grep9, d'ou le grep? dans le for, a toi de le modifier pour adapter...
Pour xavyeii:
grep MemTotal /proc/meminfo|sed 's/MemTotal:\s\+//'
grep truc fichier | awk '{if .... print $1 else print cequetuveux ......}'
balou311
Messages postés
765
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
21 septembre 2006
87
16 janv. 2006 à 13:05
16 janv. 2006 à 13:05
j'y ai pensé le problème c'est que le grep truc fichier (fichier: est en fait une suite de fichier) ne me donnera pas les fichiers ne contenant pas truc il me donnera juste =>fichier:ligne_contenant_truc<=
ou alors je ne sais pas comment le faire
en tout cas merci pour ta réponse
ou alors je ne sais pas comment le faire
en tout cas merci pour ta réponse
Bonjour,
je tourne sous un kernel Unix (version Mac OS X) et je souhaitais balayer l'un de mes répertoires de fichiers php en utilisant une commande grep, mais j'ai eu un message d'erreur: """grep: unknown directories method"""
voici ma ligne de commande: grep -d agenda path
(je recherchais le mot "path" dans tous les fichiers du repertoire "agenda".)
apparemment, l'erreur ne viens pas du fait que j'utilise le mot path (d'après ce que conclut le message d'erreur).
peut-être dois-je mettre -R en plus car il y'a des sous répertoires il me semble.
sinon, ............. man est mon ami !!
je tourne sous un kernel Unix (version Mac OS X) et je souhaitais balayer l'un de mes répertoires de fichiers php en utilisant une commande grep, mais j'ai eu un message d'erreur: """grep: unknown directories method"""
voici ma ligne de commande: grep -d agenda path
(je recherchais le mot "path" dans tous les fichiers du repertoire "agenda".)
apparemment, l'erreur ne viens pas du fait que j'utilise le mot path (d'après ce que conclut le message d'erreur).
peut-être dois-je mettre -R en plus car il y'a des sous répertoires il me semble.
sinon, ............. man est mon ami !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
13 nov. 2007 à 08:13
13 nov. 2007 à 08:13
Salut,
Utilises plutôt la commande "find" couplée à "grep", un truc du style :
Utilises plutôt la commande "find" couplée à "grep", un truc du style :
find /chemin/agenda -type f -name "*" -exec grep -H "path" {} \;;-))
Bonjour,
hum.. je cherche comment faire pour n'avoir que la taille de la mémoire totale:
Là il m'affiche : "MemTotal: 385564 kB"
Et je voudrais qu'il m'affiche seulement cela: "385564 kB"
Merci par avance,
Xavier
hum.. je cherche comment faire pour n'avoir que la taille de la mémoire totale:
grep MemTotal /proc/meminfo
Là il m'affiche : "MemTotal: 385564 kB"
Et je voudrais qu'il m'affiche seulement cela: "385564 kB"
Merci par avance,
Xavier
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
9 sept. 2008 à 14:00
9 sept. 2008 à 14:00
Salut,
ça ne marche pas avec cut ?
106485010510997108
ça ne marche pas avec cut ?
grep MemTotal | cut -d':' -f2--
106485010510997108
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
9 sept. 2008 à 14:40
9 sept. 2008 à 14:40
Si aussi, et c'est plus simple :-)
Par contre, ça laisse des espaces devant selon les configurations...
Par contre, ça laisse des espaces devant selon les configurations...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
>
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
9 sept. 2008 à 15:01
9 sept. 2008 à 15:01
sed -n '/MemTotal: */ s///p' /proc/meminfo;-))
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 sept. 2008 à 15:11
9 sept. 2008 à 15:11
Ha ben voui, bien vu
ça marche tout aussi bien ! =)
Merci
Autre question:
J'ai fait la commande suivante:
J'aimerais que cela soit afficher de la manière suivante:
Or ça s'affiche comme suit:
En gros, comment mettre à la ligne avant tous les
Merci par avance
Merci
Autre question:
J'ai fait la commande suivante:
echo -e "===> /etc/fstab \n\n" $(cat /etc/fstab) >> AC000021.txt
J'aimerais que cela soit afficher de la manière suivante:
===> /etc/fstab /dev/vg_sys/... /dev/vg_sys/... /dev/vg_app/.. ...
Or ça s'affiche comme suit:
===> /etc/fstab /dev/vg_sys/... /dev/vg_sys/... /dev/vg_app/.. ...
En gros, comment mettre à la ligne avant tous les
/dev?
Merci par avance
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
9 sept. 2008 à 15:08
9 sept. 2008 à 15:08
echo -e "===> /etc/fstab \n\n" && cat /etc/fstab >> AC000021.txt;-))
Yes ! C'est parfait !
(enfin presque..)
Le problème est qu'il ne m'affiche plus "====> /etc/fstab :" dans le fichier
=(
(enfin presque..)
Le problème est qu'il ne m'affiche plus "====> /etc/fstab :" dans le fichier
=(
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
9 sept. 2008 à 15:31
9 sept. 2008 à 15:31
Oups ;-((
(echo -e "===> /etc/fstab \n\n" && cat /etc/fstab) >> AC000021.txtDésolé ;-)
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 sept. 2008 à 16:03
9 sept. 2008 à 16:03
Hum,
Puisque qu'on est dans les commandes courtes...
Puisque qu'on est dans les commandes courtes...
sed '1i===>/ets/fstab\n\n' /etc/fstab >> fichier_resultant
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
>
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
9 sept. 2008 à 16:12
9 sept. 2008 à 16:12
Ben voui ;-))
Mais bon, /ets j'ai pas trouvé comme répertoire ;-DDDD
Mais bon, /ets j'ai pas trouvé comme répertoire ;-DDDD
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 sept. 2008 à 16:30
9 sept. 2008 à 16:30
c'est normal, puisque tu n''as pas des pages pour woman ;-DDD
Par contre le tiens asevere ne marche pas chez moi =/
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
9 sept. 2008 à 16:27
9 sept. 2008 à 16:27
A tout hasard, c'est un(le chiffre) puis i dans la commande sed
Hum .. ouép =)
Désolé je débute... je ne sais même pas comment comprendre ce bout de code =/
enfin je ne sais pas ce que veut dire "1i" ...
Désolé je débute... je ne sais même pas comment comprendre ce bout de code =/
enfin je ne sais pas ce que veut dire "1i" ...
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
9 sept. 2008 à 16:52
9 sept. 2008 à 16:52
Autant pour moi, voici l'explication:
inserer avant la 1ere ligne du fichier /etc/fstab la chaine "===>/etc/fstab" puis deux retours chariots (\n\n)
sed '1i===>/etc/fstab\n\n' /etc/fstab >> fichier_resultant
inserer avant la 1ere ligne du fichier /etc/fstab la chaine "===>/etc/fstab" puis deux retours chariots (\n\n)
OK merci !
Et qu'est-ce qui fait les retours à la ligne avant chaque "/dev" (et encore il y a des lignes qui n'ont même pas de "/dev" au début) ? C'est spécifique au fichier ?
Et qu'est-ce qui fait les retours à la ligne avant chaque "/dev" (et encore il y a des lignes qui n'ont même pas de "/dev" au début) ? C'est spécifique au fichier ?
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
9 sept. 2008 à 17:06
9 sept. 2008 à 17:06
C'est le fichier lui même qui est formaté comme ça ;-)
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
>
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
9 sept. 2008 à 17:12
9 sept. 2008 à 17:12
echo $(cat fichier) va prendre tout les 'mots' du fichier et les afficher, il faut dans ce cas, (pour signaler a echo que le contenu du fichier n'est qu'un seul argument) entourer $(cat fichier) par des guillemets doubles
tu le verras en faisant:
tu le verras en faisant:
echo $(cat /etc/fstab) #une ligne est renvoyée echo "$(cat /etc/fstab)" #autant de ligne qu'il y a dans /etc/fstab sont renvoyéeC'est un peu simplifié, mais c'est comme ça qu'il faut le comprendre dans un premier temps...
16 janv. 2006 à 12:08
mais ça ne m'aide pas
je ne vois toujours pas comment faire!
merci quand même
22 févr. 2012 à 11:57