sed:“/”是什么意思?

sed:“/”是什么意思?
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'

所以前两个/属于/pattern/,这意味着匹配正则表达式:

/regexp/
          Match lines matching the regular expression regexp.

答案3

我唯一不明白的是“/链接:”

你的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.

相关内容