unix cat $ 0 | sed -n' / ^#[hH] \ * / p' | sed' s / ^#[hH] \ * // g' | pg

时间:2017-11-05 06:59:57

标签: regex shell unix sed scripting

我是UNIX新手.. 可以请任何人解释我这行代码...

cat $0|sed -n '/^#  [hH]\*/p'|sed 's/^#  [hH]\*//g'|pg

1 个答案:

答案 0 :(得分:1)

可以概括为: 从当前脚本文件中提取以# h*# H*开头的行, 删除了起始# [hH]*, 并转到pg计划。

说明:

  • $0是正在执行的文件的名称。如果您将脚本作为./path/to/script.sh运行,则它将是该路径。
  • 第一个sed仅打印以# [hH]\*开头的行,其中[hH]表示hH\*表示文字*字符。 ^表示“开始一行”。
  • 第二个sed无效取代起始# [hH]\*,有效删除模式。它有g标志来执行替换次数与匹配一样多次,但这里没有意义,因为^保证只有匹配。
  • 我不知道pg做了什么......

它与这个更简单(更安全)的管道实际上是一样的:

sed -n 's/^#  [hH]\*//p' "$0" | pg