gpt4 book ai didi

linux - 将 grep 输出放入循环变量中

转载 作者:太空狗 更新时间:2023-10-29 12:00:23 24 4
gpt4 key购买 nike

我有 CentOS 和这个 bash 脚本:

#!/bin/sh
files=$( ls /vps_backups/site )
counter=0
for i in $files ; do
echo $i | grep -o -P '(?<=-).*(?=.tar)'
let counter=$counter+1
done

在站点文件夹中,我使用以下名称压缩了备份:

    site-081916.tar.gz
site-082016.tar.gz
site-082116.tar.gz
...

上面的代码打印:081916082016082116

我想把每个提取的日期放到一个变量中,所以我替换了这一行

echo $i | grep -o -P '(?<=-).*(?=.tar)'

用这个:

dt=$($i | grep -o -P '(?<=-).*(?=.tar)')
echo $dt

但是我得到这个错误:

./test.sh: line 6: site-090316.tar.gz: command not found

有什么帮助吗?

谢谢

最佳答案

您仍然需要 $(...) 中的 echo:

dt=$(echo $i | grep -o -P '(?<=-).*(?=.tar)')

关于linux - 将 grep 输出放入循环变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39338020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com