开发者

shell中对xargs命令传参进行编辑

以文件解压为例,将当前路径下的所有gz文件解压到同名的log文件中,解压命令如下所示:

ls *.gz| xargs -n 1 -P 4 -I {} bash -c 'zcat "{}" > $(echo "{}" | sed "s/gz$/log/g")'

执行结果如下图所示:

shell中对xargs命令传参进行编辑

命令说明:

xargs -I {}占位的参数传递给后面的bash -c命令以进行复杂的字符串替换操作。

使用$()引用计算结果,在括号中完成文件名的编辑。括号中使用"{}"引用传入的文件名

sed "s/gz$/log/g"将echo传递的文件名中末尾的gz替换为log, gz$是正则表达式用于匹配后缀为gz的文件

也可使用下面的命令进行解压:

ls *.gwww.devze.comzandroid| xargs -n 1 -P 4 -I {} bash -c 'zcat "{}" > $(fandroidile="{}"; echo ${file::-3}.log)'

${file::-3}表示去掉文件名末尾的三个字符,即".gz"

运行结果和上述一致:

shell中对xargs命令传参进行编辑

到此这篇关于shell中对xargs命令传参进行编辑的文章就介绍到这了,更多相关sandroidhell xargs传参内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望编程客栈大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新运维

运维排行榜