我有大量文件,它们的编号方式如下:file_01_01.out
第一个数字是文件所属的组,第二个数字是该组中文件的编号 -file_10_07.out
第 10 组中的第 7 个文件也是如此。
我想从这些文件中复制一些文本并将它们分组到一些输出文件中。我尝试过使用它,但它并没有真正起作用,我不明白为什么:
for i in {0..21};
do
grep "text" file_$i_*out > out_$i.txt;
done;
不知道为什么这不起作用,但输出肯定有逻辑。这不是我想要的输出,有些文件只是被完全跳过。
答案1
(除了@Philippos):Bash 正在尝试扩展变量$i_
而不是$i
.尝试...${i}_...
:
for i in {00..21}
do
grep "text" file_${i}_*out > out_$i.txt
done
答案2
您的模式将扩展到file_1_
,但您需要file_01_
使用for i in {00..21};