Différences entre les versions de « Console »

De Wiki de Geonov
Ligne 34 : Ligne 34 :
Pour rechercher un texte dans des fichiers en particulier :
Pour rechercher un texte dans des fichiers en particulier :
<syntaxhighlight lang="bash" gutter="false" toolbar="false">grep -r 'texte' ./**/*.log</syntaxhighlight>
<syntaxhighlight lang="bash" gutter="false" toolbar="false">grep -r 'texte' ./**/*.log</syntaxhighlight>
== Rechercher dans un fichier compressé ==
La commande 'zgrep' permet de rechercher un texte directement dans un fichier compressé.
<syntaxhighlight lang="bash" gutter="false" toolbar="false">zgrep -v "geonov" fichier.txt.gz</syntaxhighlight>
=== Paramètres ===
* -c : renvoie le nombre d’occurrences trouvées
* -i : ignore la casse
* -n : spécifie le numéro de la ligne trouvée
* -v : recherche inversée
* -l : cherche dans le nom des fichiers au lieu de leur contenu


== Rechercher et remplacer dans les fichiers ==
== Rechercher et remplacer dans les fichiers ==

Version du 6 avril 2021 à 13:46

1 Flux de redirection

Les commandes renvoient leurs messages sur deux sorties différentes :

  • la sortie standard : tous les messages sauf les erreurs.
  • la sortie des erreurs : toutes les erreurs.

Dans la console, ces deux sorties sont renvoyées par défaut à l'écran. Mais si l'on souhaite rediriger les sorties vers un fichier texte, il faut prendre en compte ces deux sorties distinctes :

  • > info.log : écrase "info.log" avec la sortie standard
  • >> info.log : ajoute la sortie standard dans "info.log"
  • 2> erreur.log : écrase "erreur.log" avec la sortie des erreurs
  • 2>> erreur.log : ajoute la sortie des erreurs dans "erreur.log"

Il est possible de combiner les deux :

commande > info.log 2> erreur.log
commande >> info.log 2>> erreur.log

Pour rediriger la sortie des erreurs vers le même fichier que celui de la sortie standard, on utilise "2>&1" (littéralement "envoyer la sortie 2 dans celle définie pour la sortie 1") :

commande > info.log 2>&1
commande >> info.log 2>&1

2 Recherche

2.1 Rechercher dans les fichiers

Pour rechercher un texte dans tous les sous-répertoires :

grep -r 'texte' ./**/*

ou encore :

grep -rnw 'répertoire' -e 'texte'

Pour rechercher un texte dans des fichiers en particulier :

grep -r 'texte' ./**/*.log

2.2 Rechercher dans un fichier compressé

La commande 'zgrep' permet de rechercher un texte directement dans un fichier compressé.

zgrep -v "geonov" fichier.txt.gz

2.2.1 Paramètres

  • -c : renvoie le nombre d’occurrences trouvées
  • -i : ignore la casse
  • -n : spécifie le numéro de la ligne trouvée
  • -v : recherche inversée
  • -l : cherche dans le nom des fichiers au lieu de leur contenu

2.3 Rechercher et remplacer dans les fichiers

On ajoute "-l" à la commande "grep" pour ne sortir que les noms des fichiers trouvés puis on fait le remplacement avec "sed".

Sensible à la casse (g) :

grep -rnw '.' -e 'Texte' -l | xargs sed -i 's/Texte/NouveauTexte/g'

Non sensible à la casse (gI) :

grep -rnw '.' -e 'Texte' -l | xargs sed -i 's/Texte/NouveauTexte/gI'

3 Réseau

3.1 Connaitre les ports ouverts

netstat -antup