当前位置: 代码网 > 服务器>服务器>Linux > shell中对xargs命令传参进行编辑

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

2025年02月13日 Linux 我要评论
以文件解压为例,将当前路径下的所有gz文件解压到同名的log文件中,解压命令如下所示:ls *.gz| xargs -n 1 -p 4 -i {} bash -c 'zcat "{}" > $(

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

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

执行结果如下图所示:

命令说明:

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

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

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

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

ls *.gz| xargs -n 1 -p 4 -i {} bash -c 'zcat "{}" > $(file="{}"; echo ${file::-3}.log)'

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

运行结果和上述一致:

到此这篇关于shell中对xargs命令传参进行编辑的文章就介绍到这了,更多相关shell xargs传参内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com