linux - 如何在 for 循环中将连续数字添加到日期数字

标签 linux bash loops for-loop grep

例如,我在 linux shell bash 上有以下 FOR 循环。

for log in filename.log.2014-11-0[123456789].gz; do
    printf '%s:' "$log"
    gzcat "$log" | grep -wc 'burgers for 1 dollar'
done

我想让数字循环所有日期的数据,如下所示:

for log in filename.log.201[45]-0[123456789]-0[123456789].gz; do
    printf '%s:' "$log"
    gzcat "$log" | grep -wc 'burgers for 1 dollar'
done

最佳答案

您可以在 BASH 中使用范围:

for log in filename.log.201{4,5}-0{1..9}-0{1..9}.gz; do
    printf '%s:' "$log"
    gzcat "$log" | grep -wc 'burgers for 1 dollar'
done

编辑:您可能只需要在 for 循环中使用此全局模式:(感谢@Barmar)

filename.log.201{4,5}-*-*.gz

关于linux - 如何在 for 循环中将连续数字添加到日期数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250017/

相关文章:

c++ - 用户空间缓冲区和内存映射文件之间的 DMA

linux - 查找哪个程序运行另一个

ruby - 为什么我需要将 ~/.rbenv/bin 添加到我的路径中?

bash - awk 脚本中的 "BEGIN blocks must have an action part"错误

Python 函数在几次迭代后停止工作

php - 如何在某些条件下在 foreach 循环中添加 css 类

java - Eclipse 中的平台特定代码

c - 从程序重启 linux

python - 使用 python subprocess.call 将 fasta 序列的计数写入文件

c++ - OpenMP - OpenMP 'for' 语句中的索引变量必须具有带符号的整数类型