当前位置: 首页 > news >正文

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

以文件解压为例,将当前路径下的所有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"

运行结果和上述一致:


http://www.mrgr.cn/news/36824.html

相关文章:

  • 天命人,如何轻松利用仿真技术打造出属于你的“金箍棒”?
  • 前端插件开发用什么技术比较好,用来程序自动化下载
  • 微服务架构拆分策略与实践
  • git的远程操作-把自己的代码推上去和把别人的代码拉下来
  • 人工智能下的GIS发展趋势
  • GUI-文本和按钮控件
  • leetcode 2024.9.26
  • 神经网络介绍及其在Python中的应用(一)
  • 19.1 使用k8s的sdk编写一个项目获取pod和node信息
  • 小红书,努力成为小红书
  • UCS与Unicode:二虎相争,必有一伤?
  • 数字化AI直播革命:无人直播新纪元,真AI赋能未来!
  • 如何在 Android 中用 Kotlin 将 dp 转换为 px
  • Unity网络开发记录(一):实现最简单的unity客户端和服务器通信
  • Spring Boot框架在甘肃非遗文化网站设计中的运用
  • DCGAN生成人脸图片
  • (已解决)torch.load的时候发生错误ModuleNotFoundError: No module named ‘models‘
  • 负载箱在各领域的作用
  • 12.系统架构分析师应该懂的项目管理知识
  • 刷题学习日记 (1) - SWPUCTF