在shell脚本里增加number=$(ls /data/log/nginx/ | grep host-443.access.log | grep -o '[0-9]\+' | tr '\n' ','),然后执行mv命令其中mv /data/$(number).log
时间: 2023-07-16 09:17:21 浏览: 95
Nginx日志自动归档备份shell脚本log.sh
根据你的脚本,你想要将 `/data/log/nginx/host-443.access.log` 的数字部分提取出来,并将它们作为参数传递给 `mv` 命令,以便将这些文件移动到 `/data/` 目录下。
你可以使用循环来遍历数字列表,并构造出每个文件的路径名,然后将其作为参数传递给 `mv` 命令。以下是一个示例脚本:
```
#!/bin/bash
# 提取数字列表
number=$(ls /data/log/nginx/ | grep host-443.access.log | grep -o '[0-9]\+' | tr '\n' ',')
# 将逗号分隔的数字列表转换为数组
number_array=(${number//,/ })
# 遍历数字列表
for n in "${number_array[@]}"
do
# 构造文件路径
file="/data/log/nginx/host-443.access.log${n}"
# 移动文件
mv "$file" "/data/${n}.log"
done
```
在这个脚本中,我们首先提取数字列表,然后将其转换为数组。接下来,我们使用 `for` 循环来遍历数组中的每个数字,为每个数字构造出文件路径,并将其移动到 `/data/` 目录下,以 `${n}.log` 为新的文件名。
阅读全文