linux xargs 字符拼接,linux – xargs用法语法

for filename in "$HOST-mail-2018$1"[0-9][0-9]*; do

case $filename in

*.gz) g=zgrep ;;

*.bz2) g=bzgrep ;;

*.xz) g=xzgrep ;;

*) printf 'Unknown filetype for "%s"

' "$filename" >&2

exit 1 # or continue or break

esac

"$g" 'Cannot .*TLS' "$filename"

done

每个压缩工具都带有相应的grep工具.对于gzip,bzip2和xz分别称为zgrep,bzgrep和xzgrep.通过使用这些,无需显式解压缩和重新压缩文件.

上面的脚本根据文件后缀选择正确的grep.可以说可以使用普通grep来表示任何未知的后缀.请参阅下文,了解如何在不查看文件名后缀的情况下执行此操作(使用文件工具).

注意我们不需要使用ls循环遍历文件集,并且变量扩展需要双引号.

我忽略了你的代码中的sed调用,因为我不知道这些调用的目的是什么.我还删除了代码末尾的出口0,因为如果它退出循环,它将掩盖脚本的任何其他退出状态.

使用文件的MIME类型选择正确的grep工具:

for filename in "$HOST-mail-2018$1"[0-9][0-9]*; do

case $( file -b -i "$filename" ) in

text/plain*) g=grep ;;

application/x-gzip*) g=zgrep ;;

application/x-bzip2*) g=bzgrep ;;

application/x-xz*) g=xzgrep ;;

*) printf 'Unknown filetype for "%s"

' "$filename" >&2

exit 1 # or continue or break

esac

"$g" 'Cannot .*TLS' "$filename"

done

这将正确选择正确的grep工具,无论文件名后缀是什么(只要该文件是受支持的文件类型之一).我还为普通文本文件添加了普通grep.

有关:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值