例如,我有一个文件test.json
,其中包含一系列包含以下内容的行:
header{...}
body{...}
我想运行一个返回以下内容的脚本
Counted started on : test.json
- headers : 4
- body : 5
- <others>
Counted finished : <time elapsed>
到目前为止我得到的是这个。
count_file() {
echo "Counted started on : $1"
#TODO loop
cat $1 | grep header | wc -l
cat $1 | grep body | wc -l
#others
echo "Counted finished : " #TODO timeElapsed
}
编辑:
修改问题并添加了代码段
答案 0 :(得分:0)
Perl on Command Line
perl -E '$match=$ARGV[1];open(Input, "<", $ARGV[0]);while(<Input>){ ++$n if /$match/g } say $match," ",$n;' your-file your-pattern
对我来说
perl -E '$match=$ARGV[1];open(Input, "<", $ARGV[0]);while(<Input>){ ++$n if /$match/g } say $match," ",$n;' parsing_command_line.pl my
在我的脚本中 parsing_command_line.pl
计算模式 my 的数量<强>输出强>
my 3
为你
perl -E '$match=$ARGV[1];open(Input, "<", $ARGV[0]);while(<Input>){ ++$n if /$match/g } say $match," ",$n;' test.json headers
注意强>
在命令提示符上写下一行中的所有代码
第一个参数是您的文件
第二是你的模式
这不是一个完整的代码,因为您必须逐个输入所有模式
答案 1 :(得分:0)
您可以在变量中捕获命令的结果,例如:
result=`cat $1 | grep header | wc -l`
然后打印结果:
echo "# headers : $b"
`是 eval 运算符,它允许通过命令输出替换整个表达式。