2017-11-05 6 views
0

私はUNIXを初めて使っています... できます、削除 を開始# [hH]*# h*または現在のスクリプトファイルで# H*、 で始まる行を抽出し、に渡す :誰も私にそれのようにまとめることができ、このコード行...

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

:https://explainshell.com – Cyrus

答えて

1

を説明しますpgプログラム

説明:

  • $0は、実行されているファイルの名前です。 ./path/to/script.shというスクリプトを実行すると、そのパスになります。
  • 最初sedプリントのみ線が[hH]h又はH意味# [hH]\*、で始まり、そして\*リテラル*文字を意味します。 ^は、「行の先頭」を意味します。
  • 第2のsedは、始まりの# [hH]\*を何も置き換えず、効果的にパターンを削除します。それはgフラグがあるので、一致がある回数だけ置換を実行しますが、^は一致することが保証されているため、ここでは無意味です。私はpgが何をするか分からない
  • ...

それが効果的に、このシンプルな(かつ安全)パイプラインと同じです:これは役立つかもしれない

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