shell脚本里的一句话,

awk -F '\]\[' '$4>=beg && $4<=end {print $0}' beg=$beg_tm end=$end_tm ${arrfile[i]}
这句话是什么意思?

-F ']['

---- 正则表达式,表示用][做字符串的分隔符

首先判断下参数够不够,然后输出文件

awk -F '][' '$4>=beg && $4<=end {print $0}' beg=$beg_tm end=$end_tm ${arrfile[i]}

-F 指定字段分隔符(实际是正则表达式)
][貌似有误,应该是]\[(注意多一个反义),用][做分隔符
这样的话[1][2][3]被分为三部分(因为有两个][)

  • [1
  • 2 *3]

begin=$...
end=$...
利用shell变量给awk变量赋值

${arrfile[i]}:awk的输入文件,在shell层面,应该是用数组存储了N个文件名

'$4>=beg && $4<=end {print $0}':
awk程序本体,如果第4个字段在begin和end之间,把整行输出