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};

관련 정보