我有一个大目录,其中包含许多子目录,其名称以 13xxx、10xxx、11xxx 等开头。这些目录包含名为 my_file.txt 的文本文件。现在的问题是,我只想更改目录 13xxx 和 11xxx 中的文件,而不想触碰 10xxx 目录中的文件。我尝试使用以下命令搜索目录:
[ -d "13*"] && ..
[ -d "13"*] && ..
但似乎这样不行。有人能提供一段解决这个谜题的小代码吗?
答案1
您可以使用 for 循环和通配符,例如:
for d in 1[13]*; do
do_something "$d/my_file.txt";
done
或者
for f in 1[13]*/my_file.txt; do
do_something "$f";
done
答案2
所以答案是:
for d in 11*/; do
echo "#Text to be added" >> "$d"/my_file.txt;
done
for d in 13*/; do
echo "#Text to be added" >> "$d"/my_file.txt;
done