【问题标题】:looping over a few file extensions in bash在bash中循环几个文件扩展名
【发布时间】:2021-02-01 21:55:30
【问题描述】:

我有一个文件夹中的文件列表,我只想处理其中的几个。该文件夹包含file.qc、file.qc.gz file.qc.stat file.qc.count等文件。

我想在 bash 中编写一个循环,它只会打开 file.qc 和 file.qc.gz,而忽略其他文件扩展名(例如 qc.stats 或 qc.count)

【问题讨论】:

  • 我试过了,但我也想单独编辑文件,即 .qc 和 .qc.gz 需要不同的 awk 状态,这给我一个错误

标签: bash loops


【解决方案1】:

只需在循环中指定多个 glob:

#!/bin/bash

# Gracefully cases where there are no matches
shopt -s nullglob

for f in *.qc *.qc.gz
do
  echo "Found: $f"
done

你也可以把它写成更短的*.qc{,.gz},它扩展成同样的东西。

【讨论】:

  • 我试过了,但我也想单独编辑文件,即 .qc 和 .qc.gz 需要不同的 awk 状态,这给我一个错误
  • 这会遍历所有你想要的文件。对他们做一些有用的事情取决于你。如果要有条件地执行操作,可以使用if 语句。例如echo "This code runs for all files"; if [[ $f == *.qc.gz ]]; then echo "This code only runs for .qc.gz files"; fi
猜你喜欢
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 2011-07-03
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多