x=`src/lstat64 $TEST_DIR/$tmp.1 | sed -n -e '/ Links: /s/.*Links: *//p'`
このスクリプトでは。この部分は理解できますが、"/s/.*Links: *//p'"
理解できないのは'/ Links: '
どういう"/ "
意味ですか?
答え1
/ Links: /
アドレスフィルタです。その意味は:「フィルタに一致する行にのみ、次の操作を適用します。」この場合、フィルタは正規表現でも、行番号、行範囲、開始および停止正規表現の組み合わせでもかまいません。「n行ごとに」実現のためのいくつかの条件sed
。
答え2
あなたは誤解があります。あなたのコマンドは次のように解釈することができます。
sed - n -e '/pattern/ s/pattern/replace pattern/p'
したがって、最初の2つ/
はに属します/pattern/
。これは正規表現の一致を意味します。
/regexp/
Match lines matching the regular expression regexp.
答え3
私が理解していない唯一のものは "/link:"です。
あなたのsed
表情フィルターパターンLinks:
(先行スペースと末尾のスペースを含む)と一致し、置換を実行する行
s/.*Links: *//
また、-n
パターン空間の自動印刷を抑制し、p
現在のパターン空間を印刷します。
要約すると、パイプは入力からsed
一致する行だけを印刷します。Links:
後ろに交換を行いますs/.*Links: *//
。
引用元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.