小编Jes*_*hai的帖子

如何使用 xargs 和 gunzip 维护排序顺序

我试图按字母顺序(在这种情况下也意味着日期和迭代)顺序提取某些文件的内容,并且当我首先使用ls以下命令测试该过程时:

$ find /opt/minecraft/wonders/logs/ -name 20* -type f -mtime -3 -print0 \
   | sort | xargs -r0 ls -l | awk -F' ' '{print $6 " " $7 " " $9}'
Run Code Online (Sandbox Code Playgroud)

我得到了一个积极的结果:

Aug 18 /opt/minecraft/wonders/logs/2018-08-17-3.log.gz
Aug 18 /opt/minecraft/wonders/logs/2018-08-18-1.log.gz
Aug 19 /opt/minecraft/wonders/logs/2018-08-18-2.log.gz
Aug 19 /opt/minecraft/wonders/logs/2018-08-19-1.log.gz
Aug 20 /opt/minecraft/wonders/logs/2018-08-19-2.log.gz
Aug 20 /opt/minecraft/wonders/logs/2018-08-20-1.log.gz
Run Code Online (Sandbox Code Playgroud)

但是,当我实际提取文件时,排序顺序丢失了:

$ find /opt/minecraft/wonders/logs/ -name 20* -type f -mtime -3 -print0 \
   | sort | xargs -r0 gunzip -vc | grep "\/opt.*"`

/opt/minecraft/wonders/logs/2018-08-18-1.log.gz:     66.8%
/opt/minecraft/wonders/logs/2018-08-18-2.log.gz:     83.1%
/opt/minecraft/wonders/logs/2018-08-19-1.log.gz:     70.3% …
Run Code Online (Sandbox Code Playgroud)

find xargs gzip sort gunzip

3
推荐指数
1
解决办法
1157
查看次数

标签 统计

find ×1

gunzip ×1

gzip ×1

sort ×1

xargs ×1