如何在shell上运行find命令将路径文件的一部分放入变量中?

问题描述 投票:0回答:1

我正在尝试获取分布在特定文件夹上的文件内容。

find /tmp -name '*.txt'

这给了我:

/tmp/s3400/10.txt
/tmp/s3544/1212.txt

我需要将“s3400”值存储在变量上以运行另一个命令并将日志保存为“/store/logs/s3400.log”

注意:/tmp/s* 下的每个子文件夹只有 1 个 txt 文件。是一个txt文件,存放一些日志。我需要用其他脚本解析该文本。

提前致谢。

shell ubuntu find
1个回答
0
投票

试试这个:

find /tmp -type d -regex '/tmp/s[0-9]+' -execdir /path/of/your/parser.sh {}/*.txt -output /storage/logs/$(basename {}).log \;

.首先找到名为“s+Num”的目录 -> find /tmp -type d -regex '/tmp/s[0-9]+' 其次,使用 -execdir 选项,分别使用 {} 替换符号将匹配目录的完整路径传递给相应的命令 -> **-execdir /path/of/your/parser.sh {}/.txt -输出/存储/日志/$(基本名称{}).log;**

© www.soinside.com 2019 - 2024. All rights reserved.