Linux下使用使用管道时多个参数的问题的解决方案

今天做项目时,遇到了一个问题,就是如何在linux命令下使用管道,简单的管道大家肯定都会,就像这种形式

<span style="font-size:18px;">ls -a | grep *test</span>

今天遇到的问题有点复杂,就是实时扫描系统日志,从上次扫描后的一行之后一直到文件结尾,匹配关键字,如果匹配则报警。我采用awk配合grep命令来实现

awk命令作为选取日志段输出作为grep命令的输入

awk 'NR>= beginLineNum&& NR<endLineNum logFileName  | grep -nE  pattern ;

但是如何取到当前日志的总行数就成为了问题,取总行数的命令为

wc -l logFileName

但是wc之后的结果是要放在恩德LineNum这个位置的,用|方式是实现不了的,经过查询之后,发现可以使用``符号来实现(`符号是键盘上esc键下边的那个键)

所以实现的方式是

awk 'NR>= beginLineNum&& NR<`wc -l logfileName` logFileName  | grep -nE  pattern ;
在linux执行命令时,会首先执行``内的命令,之后在去执行其他命令,并将 ``内的命令的返回值作为标准输入,输入到外边的这个命令中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值