sed: que signifie "/"?

x=`src/lstat64 $TEST_DIR/$tmp.1 | sed -n -e '/ Links: /s/.*Links: *//p'` 

Dans ce script. Je comprends cette partie "/s/.*Links: *//p'" la seule chose que je ne comprends pas est '/ Links: ' "/s/.*Links: *//p'" signifie "/ " ?

/ Links: / est un filter d'adresse. Cela signifie: "Appliquer l'opération suivante uniquement aux lignes qui correspondent au filter." Dans ce cas, le filter est une regex; il pourrait aussi s'agir d'un numéro de ligne, d'une zone de ligne, d'une regex de début et d'une combinaison d'expressions régulières et même d'une condition "toutes les nièmes lignes" avec certaines implémentations de sed .

Vous avez un malentendu. votre command peut être interprétée comme:

 sed - n -e '/pattern/ s/pattern/replace pattern/p' 

Donc les deux premiers appartiennent à /pattern/ , ce qui correspond à une regex:

 /regexp/ Match lines matching the regular expression regexp. 

la seule chose que je ne comprends pas est '/ Links:'

Vos expressions sed filter les lignes correspondant au pattern Links: (avec un espace de début et de fin) et effectue la substitution

 s/.*Links: *// 

En outre, l'utilisation de -n supprime l'printing automatique de l'espace de motif et p imprime l'espace de motif actuel.

Pour résumer, le pipeline sed n'imprimerait que les lignes correspondant à Links: dans l'input après avoir effectué la substitution s/.*Links: *// . s/.*Links: *// .

Citant de man sed :

  -n, --quiet, --silent suppress automatic printing of pattern space p Print the current pattern space. /regexp/ Match lines matching the regular expression regexp. s/regexp/replacement/ Attempt to match regexp against the pattern space. If successful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp.