如何在查找中使用多个参数?

荣誉

我需要在脚本中使用find命令,如下所示:

#!/bin/bash
...

find /root/olddir/ -name "*.log" -type f | xargs -I '{}' mv {} /root/newdir/

...

但是我需要设置olddir / newdir并用于多个目录,如下所示:

/root/olddir/ --> /root/newdir/
/root/olddir2/ --> /root/newdir2/
/root/olddir3/ --> /root/newdir3/
/root/another_olddir3/ --> /root/another_newdir3/
/home/old/ --> /home/new/
...

我可以使用conf文件吗?我如何像这样读取conf文件中的参数:

param.conf:

#olddir;newdir
/root/olddir/;/root/newdir/
/root/olddir2/;/root/newdir2/
/root/olddir3/;/root/newdir3/
/root/another_olddir3/;/root/another_newdir3/
/home/old;/home/new/
约翰·布林格

您从未回答过我的问题,所以我不得不猜测。我做以下假设:

  • 文件夹列表需要与脚本本身分开维护,因此将它们直接放入脚本中是不可行的。

  • 新旧目录名称之间的对应关系模式是所提出的问题所特有的,因此脚本无法依赖它

  • 您愿意信任配置文件的格式和内容

其次,假设您要执行的命令确实是您要执行的命令。如果事实并非如此,那么您应该可以将我的答案调整为其他命令。

最重要的是,您无法使用单个find命令来完成您要说的话,您需要一种方法来find根据您的规范执行多个命令。有几种选择,但是嵌入式awk脚本似乎很适合您所介绍的问题。大概是这样的:

#!/bin bash

# For convenience in case you ever want to change it, read it from
# a command-line argument, etc:
conffile=/etc/logcopy.conf

# The awk script is provided inline as a heredoc.
# Awk is instructed to use a semicolon as field separator as needed for the
# proposed config file format.
# The config file is given as awk's input
awk -F ';' -f - $conffile <<'EOF'

# skip comments
/\s*#/ { next }

# run the given command, where $1 and $2 are the directory names read from
# one line of the config file
{ system("find $1 -name '*.log' -type f | xargs -I '{}' mv {} $2") }

EOF

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 $_POST 中使用多个参数

如何在多个工作簿中使用“查找”?

如何在查询中使用LIKE查找多个单词?

如何在Android Studio中使用多个参数调用API

如何在SQL查询中使用多个参数

如何在VBA中使用多个可选参数

如何在Sapper / Svelte中使用多个URL参数

如何在邮件扩展中使用多个参数?

如何在 Spring Boot Rest Controller 中使用多个参数?

如何在 FFMPEG 中使用多个 Palettegen 参数

如何在Yii中使用CDbCriteria对多个参数进行分组?

如何在脚本中使用参数运行多个 jar

如何在 CMD 的 cURL 中使用多个 GET 参数?

如何在 React 中使用 useHistory 钩子发送多个参数?

在Python中使用.format()方法时,如何在{}中使用多个参数

如何在Django中使用带有参数的反向URL查找?

如何在红宝石水豚中使用单个查找来搜索多个定位器?

如何在Excel 2007及更高版本中使用多个条件查找值

如何在SQL(Oracle)中使用多个表查找结果集的最高计数

如何在mongoosejs中使用'OR'查找?

如何在Jinja中使用查找表?

如何在ASP.NET Core 3.0中使用ValidationAttribute验证多个操作参数

如何在Python 3中使用具有多个参数的多重处理?

如何在单个查询中使用不同的参数执行多个连接

如何在python中使用多个参数从API端点正确获取数据?

如何在指定方法中使用多个参数过滤对象?

如何在c#中使用jquery和IHttpHandler在上传图像期间发送多个参数

如何在FastAPI中使用fileupload添加多个正文参数?

如何在C#中使用多个参数编写扩展方法?