我有一个名为 ../words 的目录,其中包含许多子目录(words/blabla,words/blabla),每个子目录又包含两种类型的文件 (.*1.txt) 和 (.*2.txt) 。我需要的是针对这些文件中的每一个运行一个 AWK 脚本。
会不会是类似的东西?
for d in words/*
do
for f in .*[0-9].txt
do
awk -f script.awk ${f}
done
done
答案1
这应该有效:
for f in words/*/.*[12].txt
do
awk -f script.awk "$f"
done
答案2
bash
如果您使用像或 这样的现代 shell zsh
,您可以使用类似以下内容:
for i in words/*/*{1,2}.txt; do awk -f script.awk "$i"; done
如果出于某种原因,您需要与 兼容/bin/sh
,则可以使用这个稍微冗长且可读性较差的解决方案
for i in words/*/*1.txt words/*/*2.txt; do awk -f script.awk "$i"; done
答案3
尝试这个for d in words/*; do for f in ./words/$d/*{0..9}.txt; do awk -f script.awk $f; done