我的程序看起来像这样。
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`
我将通过提供一个文件名作为参数运行此脚本,其中将显示探针列表。
我有两个问题
grep -v '^#'
的含义是什么。我了解到'^
通常用于匹配特定的字符串。但是在我给出的文件名中没有#
。此外,我得到cat $1 | grep -v '^#' | wc -l
的探测总数。
echo $FINISHED"+1"|bc
。这里有任何关于为什么开发人员添加|bc
?
答案 0 :(得分:32)
^
表示“行首”#
是文字#
-v
表示在grep中“反转匹配”,换句话说,返回所有不匹配的行。将这些放在一起,你的表达是“选择所有不以#
开头的行”
|
是管道字符,它在左侧获取命令的输出,并将其用作右侧命令的输入。 bc
就像一个命令行计算器(进行基本数学运算)。
答案 1 :(得分:2)
我会用它来排除我阅读的代码中的注释。因此,所有评论行都以#开头,如果有太多评论,我不想看到它们。
grep -v' ^#'
答案 2 :(得分: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