extraire les lignes du fichier
/etc/services
contenant la chaîne
name
extraire les lignes du fichier
/etc/services
commençant par la chaîne
microsoft
réponse
grep ^microsoft /etc/services
extraire les lignes du fichier
/etc/services
contenant les 2 chaînes
tcp
et
19
dans cet ordre
réponse
grep 'tcp.*19' /etc/services
Le fichier words (/usr/share/dict/words
) contient un mot par ligne. Faire les recherches suivantes dans ce fichier à l'aide de grep
:
extraire les mots commençant par un j
réponse
grep '^j' /usr/share/dict/words
extraire les mots finissant par nix
réponse
grep 'nix$' /usr/share/dict/words
extraire les mots commençant par K et finissant par k
réponse
grep '^K.*k$' /usr/share/dict/words
extraire les mots commençant ou finissant par aa
réponse
grep '^aa|aa$' /usr/share/dict/words
extraire les mots commençant par un y, minuscule ou majuscule
extraire les mots d'au moins 10 lettres
réponse
grep '..........'
grep -E '.{10}'
extraire les mots de 10 lettres
réponse
grep '^..........$'
grep -E '^.{10}$'
extraire (en un seul grep) les mots de 4, 5 et 6 lettres
réponse
egrep '^.....?.?$ # egrep ≡ grep -E
egrep '^.{4,6}$'
extraire (en un seul grep) les mots de 16, 21 et 26 lettres
extraire les mots contenant au moins 4 a
réponse
grep 'a.*a.*a.*a'
egrep '(a.*){4}'
extraire les mots contenant exactement 3 z
réponse
grep '^[^z]*z[^z]*z[^z]*z[^z]*$'
egrep '^([^z]*z){3}[^z]*$'
extraire les mots ne contenant pas uniquement des lettres
extraire les mots commençant par un doublon (2 lettres identiques consécutives)
extraire les mots commençant et finissant par la même lettre
extraire les palindromes de 7 lettres
extraire les mots contenant un triplet (3 lettres consécutives identiques)
extraire les mots dédoublables, comme bobo, poussepousse
extraire les mots contenant 3 occurences d'un même doublon, comme successlessness
extraire les mots contenant au moins 6 occurrences d'une même voyelle
réponse
egrep '([aeiouy])(.*\1){5,}'
extraire les mots contenant 2 occurences d'un même doublon de voyelles, comme schoolbooks
Utiliser sed
ou vi
pour répondre aux questions ci-dessous :
lister les logins (et seulement les logins) déclarés dans /etc/passwd
sed
sed 's/:.*$//' /etc/passwd
transformer tous les
@
en
(at)
contenus dans un fichier donné
vi
1,$s/@/(at)/gc # c demande de confirmation avant chaque remplacement
supprimer les numéros de lignes d'un fichier du type des corrigés de ce wiki
sed
sed 's/^ *[0-9][0-9]*: *//'
sed -r 's/^\s*[0-9]+:\s*//' # -r pour exploiter les RE étendues
vi
1,$s/^ *[0-9][0-9]*: *//