Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
18 octobre 2016

htmlpdflatexmanmd




grep

grep

Affiche les lignes qui contiennent une correspondance pour un motif

Options - contrôle de correspondance

-e PATTERN, --regexp=PATTERN Utilise PATTERN comme motif. Si cette option est utilisée plusieurs fois ou combinée avec -f, recherche tous les motifs donnés.
-f FILE, --file=FILE Obtient les patterns depuis le fichier, un par ligne. Si cette option est utilisée plusieurs fois ou combinée avec -e, recherche pour tous les patterns donnés. Un fichier vide ne contient aucun pattern, et ne matche rien.
-i, --ignore-case Ignore la casse.
-v, --invert-match Inverse le sens de match, pour selectionner des lignes non-matchant.
-w, --word-regexp Sélectionne uniquement les lignes contenant les matchs qui forment un mot entier. Le test est que la sous-chaîne matchant doit être soit au début de la ligne, ou précédé par un caractère non-word. Similairement, il est doit être soit à la fin de la ligne ou suivi par un caractère word. N'a pas d'effet avec -x
-x, --line-regexp Sélectionne seulement les matche qui correspondent exactement à la ligne entière.

Options - Contrôles de sortie généraux

-c, --count Supprime la sortie normale; Affiche un compteur de lignes correspondantes pour chaque fichier d'entrée. Avec -v, compte les lignes qui ne matchent pas.
--color[=WHEN], --colour[=WHEN] Mode couleur. Les couleurs sont définies par la variable d'environnement GREP_COLORS (défaut: ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36)
-L, --files-without-match Supprime la sortie normale; affiche le nom de chaque fichier d'entrée dans lequel aucune sortie ne serait affichée.
-l, --files-with-matches Supprime la sortie normale; affiche le nom de chaque fichier d'entrée dans lequel un sortie aurait été affichée.
-m NUM, --max-count=NUM Stop la lecture d'un fichier après NUM lignes matchant.
-o, --only-matching Affiche seulement les parties matchants des lignes matchant.
-q, --quiet, --silent N'affiche rien sur stdout. Quitte avec un status 0 si un match est trouvé, même si une erreur a été détectée.
-s, --no-messages Supprime les messages d'erreur sur des fichiers non-existants ou illisibles.

Options - contrôle de préfixe de ligne

-b, --byte-offset Affiche l'offset dans le fichier d'entrée avant de sortir chaque ligne. si -o est spécifié, affiche l'offset de la partie matchant elle-même.
-H, --with-filename Affiche le nom de fichier pour chaque match. C'est le défaut quand il y a plus d'une fichier à rechercher.
-h, --no-filename Supprime l'ajoute du nom de fichier dans la sortie. C'est le défaut quand il n'y a qu'un fichier ou seulement l'entrée standard à rechercher
--label=LABEL Affiche l'entrée venant de stdin comme entrant depuis le fichier LABEL. Utile pour implémenter des outils comme zgrep (ex: gzip -cd foo.gz | grep --label=foo -H something)
-n, --line-number Préfixe chaque ligne de sortie avec le numéro de ligne dans son fichier d'entrée
-T, --initial-tab S'assure que le premier caractère du contenu de la ligne courante s'appuis sur une tabulation, pour que l'alignement des tabulation semblent normales. Utile avec les options qui préfixent leur sortie avec le contenu actuel.
-u, --unix-byte-offsets Reporte les offsets dans le style Unix.
-Z, --null Affiche un ASCII NUL au lieu du caractère qui suit normalement un nom de fichier.

Options - Contrôle de ligne de contexte

   Sans regarder comment ces options sont définies, grep n'affiche jamais une ligne donnée plus d'une fois. Si -o est spécifié, ces options n'ont pas d'effet et une alerte est donée.

-A NUM, --after-context=NUM Affiche NUM lignes supplémentaires après chaque ligne matchant
-B NUM, --before-context=NUM Affiche NUM lignes supplémentaires avant chaque ligne matchant
-C NUM, -NUM, --context=NUM Affiche NUM lignes avant et après chaque ligne matchant
--group-separator=STRING Avec -A, -B ou -C, affiche un séparateur entre les groupes de ligne
--no-group-separator Avec -A, -B ou -C, n'affiche pas de séparateur entre les groupes de ligne

   Notes sur la manière dont grep choisis le séparateur pour affiche les préfixes:

        - Les lignes matchant utilisent normalement ':' comme séparateur entre les préfixes et le contenu de la ligne courante
        - Les ligne non-matchant utilisent - à la place
        - Quand le context n'est pas spécifié, les lignes adjacentes dans l'entrée forment un groupe et sont affiche un après l'autre, alors qu'un séparateur apparaît entre les groupes non-adjacents
        - Le séparateur par défaut est --
        - Chaque groupe peut contenir de nombreuses lignes matchant quand elles sont suffisamment proches et peuvent être fusionnés en une simple zone contigüe.

Options - Sélection de fichier et de répertoire

-a, --text Traite un fichier binaire comme si c'était du texte.
--binary-files=TYPE Trait le fichier contenant des données binaire en assumant que le fichier est du type spécifié: binary, without-match, text.
-D ACTION, --devices=ACTION Si un fichier d'entrée est un périphérique, FIFO ou socket, utilise ACTION pour le traiter. Si ACTION est 'read', tous les périphériques sont lus comme si c'étaient des fichiers ordinaires. Si ACTION est 'skip', les périphérique, FIFO, et sockets sont ignorés silencieusement.
-d ACTION, --directories=ACTION Si un fichier d'entrée est un répertoire, utilise l'action pour le traiter. par défaut, ACTION est 'read', qui signifie que les répertoires sont lus comme si c'était des fichiers ordinaires. Si ACTION est 'skip', les répertoire sont ignorés silencieusement. 'recurse' lis tous les fichiers sous chaque répertoire, recursivement.
--exclude=GLOB Saute les fichiers de la ligne de commande avec un suffix de nom qui matche le glob.
--exclude-from=FILE Saute les fichiers dont les noms matchent un des patterns lus depuis le fichier spécifié.
--exclude-dir=GLOB Saute les répertoires de la ligne de commande avec un suffix qui matche le glob.
-I Traite un fichier binaire comme s'il ne contenait pas de données correspondantes. (équivalent à --binary-files=without-match)
--include=GLOB Ne recherche que les fichiers dont les noms matchent le glob.
-r, --recursive Pour chaque opérande répertoire, lit et traite tous les fichiers dans ce répertoire, récursivement. identique à --directories=recurse
-R, --dereference-recursive Pour chaque opérande répertoire, lit et traite tous les fichiers dans ce répertoire, en suivant tous les liens symboliques.

Autres options

--line-buffered Utilise le tampon de ligne sur la sortie. Peut réduire les performances
-U, --binary Traite les fichiers en binaire.
-z, --null-data Traite les données d'entrée et de sortie comme séquence de lignes, chacune terminée par un ASCII NUL au lieu d'un newline.

Variables d'environnement

LC_ALL Spécifie la locale
LC_COLLATE Spécifie la locale pour la catégorie LC_COLLATE
LANG Spécifie la locale
LC_TYPE Spécifie la locale pour la catégorie LC_CTYPE
LC_MESSAGES Spécifie la locale pour la catégorie LC_MESSAGES
LANGUAGE Contient une liste séparée par ',' de langages qui remplacent les variables LC_ALL, LC_XXX et LANG
GREP_COLORS Spécifie les couleurs et autres attributs utilisés pour colorer la sortie:

        sl= Lignes sélectionnées
        cx= Lignes de context
        rv booléen inversant la signification de sl et cx
        mt=01;31 Texte non-vide dans un ligne matchant.
        ms=01;31 Texte non vide matchant dans une ligne matchant
        mc=01;31 texte non-vide matchant dans une ligne de contexte
        fn=35 Sous-chaîne our les noms de fichier préfixant une ligne
        ln=32 Sous-chaîne pour les numéros de ligne préfixant une ligne
        bn=32 Offset préfixant une ligne
        se=36 Séparateur inséré entre les champs, entre les lignes de contexte et entre les groupes de lignes adjacentes
        ne Booléen qui empêche d'effacer la fin d'une ligne avec Erase in Line (EL) à droite chaque fois qu'un élément colorisé prend fin.

POSIXLY_CORRECT grep se conforme à POSIX
_N_GNU_nonoption_argv_flags_ Où N est l'ID de processus grep. Si le I-ième caractère de cette variable est 1, ne pas considérer la I-ème opérande de grep comme option. Un shell peut définir cette variable pour chaque commande qu'il lance, en spécifiant quels opérandes sont le résultat d'une expansion de nom de fichier. Uniquement avec POSIXLY_CORRECT

Codes de sortie

   Normalement, le code de sortie est 0 si une ligne est sélectionnée, 1 si aucune ligne n'est sélectionnée, et 2 si une erreur se produit.

Programmes grep

   grep recherche dans les fichiers nommés en entrée à la recherche de lignes contenant un match. Par défaut, grep affiche les lignes matchants. Un fichier nommé '-' signifie l'entrée standard. Si aucune entrée n'est spécifiée, grep recherche le répertoire courant. Si une options spécifie la récursion, cependant, grep recherche l'entrée standard. Il y a 4 variantes majeurs de grep, contrôlés par les options suivantes:

-G, --basic-regexp Interprète le pattern comme expression régulière basique. c'est le mode pas défaut
-E, --extended-regexp Interprète le pattern comme expression régulière étendue.
-F, --fixed-string Interprète le pattern comme une liste de chaîne fixes au lieu d'expressions régulières, séparér par des newline, un d'entre eux doit matcher.
-P, --perl-regexp Interprète le pattern comme expression régulière compatible perl.

Expressions régulières

   Une expression régulière est un pattern qui décrit un jeu de chaînes. Les expressions régulières sont construites analoguement aux expressions arithmétiques, en utilisant divers opérateurs pour combiner des expressions plus petites. Grep comprend 3 types d'expressions régulière: basique, étendue, et perl. La suite décrit les expressions régulières étendue.

Structure fondamentale

. matche un simple caractère
? L'élément précédent est optionnel et est matché une fois au plus
L'élément précédent est matché 0 ou plusieurs fois
+ L'élément précédent est matché 1 ou plusieurs fois
{N} L'élément précédent est matché N fois
{N,} L'élément précédent est matché au moins N fois
{,M} L'élément précédent est matché au plus N fois
{N,M} L'élément précédent est matché au moins N fois et au plus M fois.

Classes de caractère et expressions entre crochet

[:alnum:] Caractères alphanumériques =[0-9A-Za-z]
[:alpha:] Caractère alphabétiques [A-Za-z]
[:blank:] Caractères blancs: espace et tabulation
[:cntrl:] Caractères de contrôle
[:digit:] Chiffres [0-9]
[:graph:] Caractères graphiques: [:alnum:] et [:punct:]
[:print:] Caractères imprimables. [:alnum:], [:punct:], et espace
[:punct:] caractères de ponctuation ‘! " # $ % & ' ( ) * + , - . / : ; ‹ = › ? @ [ \ ] ^ _ ` { | } ~’
[:space:] Caractères espace
[:lower:] caractères minuscules [a-z]
[:upper:] Caractères majuscules [A-Z]
[:xdigit:] Chiffres hexadécimaux [0-9A-Fa-f]

   La plupart des méta-caractères perdent leur signification spéciale dans les expressions entre crochet.

] Termine une expression crochet si ce n'est pas le premier élément de la liste
[. Représente le symbole d'ouverture de regroupement.
.] Représente le symbole de fermeture de regroupement
[= Représente l'ouvertuse de classe équivalente
=] Représente la fermeture de classe équivalente
[: Représente le symbole d'ouverture de classe de caractère
:] Représente le symbole de fermueture de classe de caractère
- Représente la plage si ce n'est pas le premier ou le dernier caractère
^ Représente les caractères qui ne sont pas dans la liste.

Le caractère \\ et des expressions spéciales

\b Matche la chaîne vide au bord d'un mot
\B Matche la chaîne vide qui n'est pas au bord d'un mot
\‹ Matche la chaîne vide au début d'un mot
\› Matche la chaîne vide à la fin d'un mot
\w Matche un constituant d'un mot, synomyme de [_[:alnum:]]
\W Match un non-constituant de mot, synomyme de [^_[:alnum:]]
\s Matche un espace blanc, synomyme de [[:space:]]
\S Matche un non-espace, synonyme de [^[:space:]]

ancre

   ^ et $ sont des méta-caractères qui matchent respectivement la chaîne vide au début de ligne et la fin de ligne.

Références et sous-expressions

   Le back-reférence, \N, où N est un simple chiffre, matche la sous-chaîne précédemment matchée par la N-ième sous-expression entre parenthèses de l'expression régulière. Par exemple, (a)\1 matche 'aa'.

Expressions régulières basiques et étendues

   Dans les expressions régulières basiques, les méta-caractères '?', '+', ‘{’, ‘|’, ‘(’, et ‘)’ perdent leur signification spéciales, utiliser leur versions échappées \.

   egrep ne supporte pas le méta-caractère { et certaines implémentations supportent \{, les scripts portables doivent éviter { dans les pattern grep -E, et utiliser [{].

Exemples

Lister simplement les noms des fichiers qui matchent
grep -l 'main' *.c
Rechercher récursivement
grep -r 'hello' /home/gigi
Rechercher seulement dans les fichiers C
find /home/gigi -name '*.c' -print0 | xargs -0r grep -H 'hello'
Similairement
grep -rH --include='*.c' 'hello' /home/gigi
Recherche toutes les lignes matchant --cut here--
grep -e '--cut here--' *
Recherche seulement les instances de hello qui sont des mots entiers:
grep -w 'hello' *
Et ne matche pas Othello. Pour plus de contrôle, utilise \‹ et \›
grep 'hello\›' *
Afficher le contexte autour des lignes qui matchent
grep -C 2 'hello' *
Forcer grep à afficher le nom d'un fichier
grep 'eli' /etc/passwd /dev/null
ou encore
grep -H 'eli' /etc/passwd
Rechercher sur l'entrée standard et dans les fichiers
cat /etc/passwd | grep 'alain' - /etc/motd
Comment exprimer des palindromes en expressions régulières
grep -w -e '\(.\)\(.\).\2\1' file
^
18 octobre 2016

htmlpdflatexmanmd




sed

sed

Éditeur de flux, utilisé pour effectuer des transformations de texte basiques

OPTIONS

-n, --quiet, --silent Par défaut, sed affiche le motif à la fin de chaque cycle. Cette option désactive cet affichage.
-e SCRIPT, --expression=SCRIPT Ajoute les commandes dans le script au jeu de commandes à lancer durant le traitement de l'entrée
-f SCRIPTFILE, --file=SCRIPTFILE AJoute les commandes contenues dans le script au jeu de commande à lancer durant le traitement de l'entrée
-i[SUFFIX], --in-place[=SUFFIX] Spécifie que les fichiers sont à éditer sur place. Sed créé un fichier temporaire et envoie la sortie dans ce fichier au lieu de stdout. Cette option implique '-s'. Quand la fin du fichier est atteinte, il est renommé au fichier d'origine. L'extension, si fournie, est utilisé pour renommer l'ancien fichier.
-l N, --line-length=N Spécifie la longueur de ligne par défaut pour la commande 'l'. 0 signifie de ne jamais couper les lignes. Défaut: 70.
--posix Se conforme à POSIX. identique à définir POSIXLY_CORRECT.
-b, --binary Pour les OS faisant la distinction entre les fichiers binaire et fichiers textes, comme MS-DOS, Windows.
--follow-symlinks Seulement avec -i. Si le fichier spécifié est un lien symbolique, sed suit le lien et édite la cible.
-r, --regexp-extended Utilise les expressions régulières étendues au lieu des expressions régulières de base.
-s, --separate Par défaut, sed considère les fichiers spécifiés comme un seul long flux. Cette option permet à l'utilisateur de les considérer comme flux séparés. Les numéros de ligne sont relatifs au début de chaque fichier, '$' réfère à la dernière ligne de chaque fichier, et les fichiers invoqués depuis des commandes 'R' sont remis au début de chaque fichier
-u, --unbuffered Met en tampon l'entrée et la sortie aussi minimal que pratique. Particulièrement utile si l'entrée via depuis des commandes comme tail -f, et que vous souhaitez voir la sortie transformée le plus vite possible.
-z, --null-data, --zero-terminated Traite l'entrée comme jeu de ligne, chacune terminée par un ASCII NUL au lieu d'une nouvelle ligne.

Fonctionnement

   sed maintient 2 tampons: l'espace _pattern_ actif, et l'espace auxiliaire _hold_. Ils sont vide à l'initialisation. sed opères en effectuant le cycle suivant sur chaque ligne d'entrée: d'abord, sed lit une ligne depuis le flux d'entrée, supprime tout newline de fin, et la place dans l'espace pattern. Les commandes sont ensuite exécutées; chaque commande peut avoir une adresse associée: les adresses osnt un type de code de condition, et une commande est seulement exécutée si la condition est vérifiée avant d'exécuter la commande.

   Quand la fin du script est atteint, sauf si l'option -n est utilisé, le contenu de l'espace pattern est affiché dans le flux de sortie, en ajoutant un newline à la fin s'il avait été supprimé. Puis le cycle démarre pour la ligne suivante.

   Sauf pour les commandes spéciales (comme 'D'), l'espace pattern est supprimé entre 2 cycles. L'espace hold, conserve ses données entre les cycles (voir les commandes h, H, x, g, G pour se déplacer entre les tampons)

Expressions régulières

   Les adresses dans un script sed peut être une des formes suivantes:

NUMBER Spécifie un numéro de ligne qui va matcher seulement cette ligne dans l'entrée.
FIRST~ STEP Match chaque ligne par pas en commençant avec le ligne FIRST. Par exemple, pour sélectionner les lignes impaires: 1~2.
$ Matche la dernière ligne du dernier fichier d'entrée, ou la dernière ligne de chaque fichier quand -i ou -s sons spécifiés
/REGEXP/ Sélectionne les lignes qui matchent l'expression régulière. L'expresion vide (//) répète la dernière expression régulière qui a matché.
\%REGEXP% Matche l'expression régulière, mais permet d'utiliser un autre délimiteur que '/'
/REGEXP/I, \%REGEXP%I l'expression régulière matche en étant insensible à la casse.
/REGEXP/M, \%REGEXP%M matche l'expression régulière en mode multi-ligne. '^ matche également la chaîne vide aprèse un newline, '$' la chaîne vide avant un newline. '\`' et '\'' matchent toujours le début ou la fin du tampon. ',' ne matche pas un caractère newline en mode multi-ligne
0,/REGEXP/ Un numéro de ligne 0 peut être utilisé dans une spécification d'adresse pour que sed tente de matcher l'expression régulière dans la première ligne d'entrée également. En d'autres termes, 0,/REGEXP/ est similaire à 1,/REGEXP/, excepté que si ADDR2 matche la première ligne de l'entrée, 0,/REGEXP/ la considère à la fin de la plage.
ADDR1,+N Matche ADDR1 et les N lignes suivantes
ADDR1,~ N Matche ADDR1 et les lignes suivantes jusqu'à la prochaine ligne dont le numéro de ligne soit un multiple de N
! Ajouter ! à la fin d'une spécification d'adresse inverse le sense du match.

Syntaxe des expressions régulières

CHAR Un simple caractère ordinaire correspondant à lui-même
Correspond à une séquence de 0 ou plusieurs instances de correspondances pour l'expression réguière précédante, qui doit être un caractère ordinaire, un caractère spéciale, un regexp groupé, une une expression entre crochet.
\+ comme * mais matche un ou plusieurs
\? comme * mais matche exactement I séquences (I est un entier décimal entre 0 et 255)
\{I,J\} Matche entre I et J, inclusifs, séquences
\{I,\} Matche plus que ou égal à I séquences
\(REGEXP\) Groupe le REGEXP interne dans son ensemble
. Matche n'importe quel caractère, incluant newline
^ Matche la chaîne null au début de l'espace pattern
$ Idem à ^ mais réfère à la fin de l'espace pattern
[LIST], [^LIST] Matche tout caractère simple dans LIST. Par exemple, [aeiou] matche toutes les voyelles. ^ inverse le sense de la liste
REGEXP1\|REGEXP2 Matche soit REGEXP1 ou REGEXP2. Utilise les parenthèses pour utilise des expressions régulières alternative complexes.
REGEXP1REGEXP2 Matche la concaténation de REGEXP1 et REGEXP2.
\DIGIT Matche la n-ième sous-expression \(...\) dans l'expression régulière
\n Matche le caractère newline
\CHAR Matche CHAR où CHAR est '$', '*', '.', '[', '\', ou '^'.

Exemples

Matche abcdef
abcdef
matche 0 ou plusieurs a, suivi par un caractère b:
a*b
Matche b ou ab
a\?b
matche un ou plusieurs a, suivi par un ou plusiuers b
a\+b\+
Matchent tous les caractères dans une chaîne, incluant une chaîne vide
.* 
Matchent tous les caractères dans une chaîne, d'au moins un caractère
.\+
Matche un chaîne commençant avec 'main' suivi par une parenthèse ouvrante et fermante. n, ( et ) ne doivent pas être adjacents
^main.*(.*)
Matche une chaîne commençant avec #
^#
matche une chaîne se terminant avec un \
\\$
Matche une chaîne consisant d'un simple signe dollar
\$
Matche les lettres ASCII ou les chiffres
[a-zA-Z0-9]
(ici ‹TAB› est un simple caractère). Matche une chaîne d'un ou plusieurs caractères, aucun d'entre eux n'est un espace ou une tabulation. Généralement, celà signifie un mot
[^ ‹TAB›]\+
Matche une chaîne consistant de 2 sous-chaînes égales, séparées par un newline
^\(.*\)\n\1$
Matche 9 caractères suivis par un A
.\{9\}A$
Matche le début d'une chaîne qui contient 16 caractères, le dernier est un A
^.\{15\}A

commande usuelles

# Aucune adresse permise. Commence un commentaire, qui contient jusqu'au prochain newline.
q [EXIT-CODE] Quitte sed dans traiter plus de commandes ou entrée, et retourne le code donné
d Supprime l'espace pattern; démarrant immédiatement un nouveau cycle
p Affiche l'espace pattern sur stdout. généralement utilisé avec l'option -n
n Si auto-print est actif, affiche l'espace pattern, puis remplace l'espace pattern avec la ligne suivante.
{ COMMANDS } Un groupe de commandes peut être enfermé dans des accolades.

commande s

   La syntaxe de la commande s (s pour substitute) est 's/REGEXP/REPLACEMENT/FLAGS' Les caractères '/' peuvent être uniformément remplacés par un autre caractère. La commande s est probablement la plus importante de sed. sed tente de correspondre l'espace pattern avec REGEXP, et si le match réussit, remplace la portion de l'espace pattern qui matche avec REPLACEMENT.

   REPLACEMENT peut contenir \N (N étant un nombre de 1 à 9) références aux portion de matche entre \( et \) dans REGEXP. REPLACEMENT peut contenir '&' qui réfère au match comple. Les séquences suivantes peuvent être inculs:

        \L Active le remplacement en minuscule jusqu'à un \U ou \E
        \l Met le prochain caractère en minuscule
        \U Active le remplacement en majuscule jusqu'à un \L ou \E
        \u Met le prochain caractère en majuscule
        \E Stop la conversion démarrée par \L ou \U

Flags

g Applique le remplacement de tous les matches au REGEXP, pas simplement le premier
NUMBER Applique le remplacement seulement au NUMBER-ième matche
p Si la substitution est effective, affiche le nouvel espace pattern
w FILE-NAME Si la substitution est effective, écris le résultat dans le fichier nommé.
e Permet à un pipe d'entrée depuis une commande shell dans l'espace pattern. Si une substitution est effective, la commande trouvée dans l'espace pattern est exécutée et l'espace pattern est remplacée avec sa sortie.
I, i I match de manière insensible à la casse.
M, m M matche les expressions régulière en mode multi-ligne

Commandes moins usuelles

y/SOURCE-CHARS/DEST-CHARS/ Traduit tous caractères dans l'espace pattern qui matche un des SOURCE-CHARS avec le caractères correspondant DEST-CHARS
a\, TEXT Accèpte 2 adresses. Met en file les lignes de texte qui suivent cette commande (chacune sauf celles se terminant avec un '\', qui sont supprimés de la sortie) sur la sortie à la fin du cycle courant, ou quand la ligne suivante est lue.
i\, TEXT Affiche immédiatement les lignes de texte qui suivent cette commande (chacune sauf celles se terminant avec un \, qui sont supprimées de la sortie).
c\, TEXT Supprime les lignes matchant l'adresse ou la plage d'adresse, et sort les lignes de texte qui suivent cette commande à la place de la dernière ligne ( ou à la place de chaque ligne, si aucune adresse n'est spécifiée). Un nouveau cycle est démarré après cette commande vu que l'espace pattern sera supprimé.
= Affiche le numéro de ligne d'entrée avec un newline
l N Affiche l'espace pattern dans une forme non ambigüe: les caractères non-imprimables sont affiché dans une forme échappé style C. N définis la longueur de ligne. 0 ne coupe pas les lignes.
r FILENAME Accèpte 2 adresses. Met en file le contenu de FILENAME à lire et à insérer dans le flux de sortie à la fin du cycle courant, ou quand la prochaine ligne d'entrée est lue. Si FILENAME ne peut pas être lu, il est traité comme si c'était un fichier vide, sans erreur.
w FILENAME écrit l'espace pattern dans FILENAME.
D Si l'espace pattern ne contient pas de newline, démarre un nouveau cycle normal comme si la commande d avait été donnée. Sinon, supprime le texte dans l'espace pattern jusqu'au newline, et redémarre le cycle avec l'espace pattern résultant, sans lire un newline d'entrée
N Ajoute un newline à l'espace pattern, puis ajoute la ligne suivante de l'entrée dans l'espace pattern.
P Affiche la portio de l'espace pattern jusqu'au newline
h Remplace le contenu de l'espace hold avec le contenu de l'espace pattern
H Ajoute un newline au contenu de l'espace hold, puis y ajoute le contenu de l'espace pattern.
g Remplace le contenu de l'espace pattern avec le contenu de l'espace hold
G Ajoute un newline au contenu de l'espace pattern, puis y ajoute le contenu de l'espace hold.
x Échange le contenu des espace pattern et hold.

Commande avancées

   Dans la plupart des cas, il est préférrable d'utiliser des commandes comme awk ou perl au lieu de ces commandes

: LABEL Aucune adresse permise. Spécifie l'emplacement d'un LABEL pour les commandes de branchement.
b LABEL Branche inconditionneles à LABEL.
t LABEL Branche à LABEL seulement s'il a été substitué depuis que la dernière ligne d'entrée a été lue ou qu'un branchement conditionnel a été fait.

Commandes spécifiques à GNU sed

e [COMMAND] Permet de pipe une entrée depuis une commande shell dans l'espace pattern. Sans paramètres, cette commande exécute la commande trouvée dans l'espace pattern et remplace l'espace pattern avec la sortie; et supprime tout newline de fin. Avec un paramètre, cette commande interprète comme commande et envoie sa sortie sur le flux de sortie.
F Affiche le nom du fichier du fichier d'entrée
L N Remplis et joint les lignes dans l'espace pattern pour produire des lignes en sortie de (au plus) N caractères, comme fmt. Si N est omis, le défaut tel que spécifié sur la ligne de commande est utilisé.
Q [EXIT-CODE] n'accepte qu'une seule adresse. fonctionne comme 'q'
R FILENAME Met en file une ligne de FILENAME et l'insert dans le flux de sortie à la fin du cycle courant, ou quand la prochaine ligne est lue. Si FILENAME ne peut pas être lu, ou si la fin est atteind, aucune ligne n'est ajoutée.
T LABEL Brachement sur LABEL uniquement si la substitution n'a pas réussit.
v VERSION Ne fait rien, mais échoue si sed n'a pas les extensions GNU.
W FILENAME Écrit dans le fichier la portion de l'espace pattern jusqu'à un newline.
z Vide le contenu de l'espace pattern. Générallement identique 's/.*//', mais est plus efficate.

Extensions GNU pour les échappements dans les expressions régulières

\a alert
\f form feed
\n nouvelle ligne
\r retour charriot
\t tabulation horizontale
\v Tabulation verticale
\cX Matche CONTROL-X, ou X est un caractère.
\dXXX Caractère ASCII où XXX est la valeur décimale
\oXXX Caractère ASCII où XXX est la valeur octale
\xXXX Caractère ASCII où XXX est la valeur héxadécimale
\b caractère \
\w Matche tout caractère 'word' (lettre, chiffre ou _)
\W Matche tout caractère non word
\b Matche une fin de mot, qui matche si le caractère à gauche est un caractère word, et le caractère à droite est un caractère non-word
\B Matche tout sauf une fin de mot.
\` Matche seulement au début de l'espace pattern. Différent de ^ en mode multi-ligne
\' Matche seulement la fin de l'espace pattern. Différent de $ en mode multi-ligne