18

私のプログラムは次のようになります。

ALL=`cat $1 | grep -v '^#' | wc -l`
FINISHED="0"

for i in `cat $1 | grep -v '^#'`; do
        echo "PROBE $i"
 I will be doing some operation
FINISHED=`echo $FINISHED"+1"|bc`

プローブのリストが存在するパラメータとしてファイル名を指定して、このスクリプトを実行します。

2つの質問があります

  1. grep -v '^#'とはどういう意味ですか? '^は通常、特定の文字列の照合に使用されることを学びました。しかし、私が付けたファイル名には#. さらに、 のプローブの総数を取得していcat $1 | grep -v '^#' | wc -lます。

  2. echo $FINISHED"+1"|bc. ここで、開発者が追加された理由について何か考えはあり|bcますか?

4

3 に答える 3

45
  • ^「行頭」を意味します
  • #リテラル文字です#
  • -vは、grep で「一致を反転する」ことを意味します。つまり、一致しないすべての行を返します。

それらをまとめると、あなたの表現は「で始まらないすべての行を選択する#」です

|はパイプ文字で、左側のコマンドの出力を受け取り、右側のコマンドの入力として使用します。bcコマンドライン計算機のようなものです (基本的な計算を行うため)。

于 2013-03-31T06:24:17.273 に答える
4

これを使用して、読んでいるコードからコメントを除外します。したがって、すべてのコメント行は # で始まり、コメント行が多すぎる場合は表示したくありません。

grep -v '^#'
于 2014-06-18T18:09:18.990 に答える