使用 For 循环使用 Grep 对文件进行排序和保存

使用 For 循环使用 Grep 对文件进行排序和保存

我有大量文件,它们的编号方式如下: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};

相关内容