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 回答
0

我们有不同的计算方法。选择你喜欢的那个。

a=`echo 1+1 | bc`; echo $a
b=$((1+1)); echo $b
c=`expr 1 + 1`; echo $c
let d=1+1; echo $d
于 2013-03-31T13:35:46.690 回答