다음 형식의 파일의 모든 인스턴스에서 실행되는 Bash에서 while 루프를 작성하고 싶습니다.
{number}.tst
예를 들어, 1.tst
, 2.tst
, ... 50.tst
.
나는 할 수 없습니다 이 파일을 통해 실행하려는 tst.tst
.
이 글을 어떻게 쓸까요? 나는 부울 구와 [0-9]*
어딘가에 필요하다고 가정 하지만 구문에 대해 완전히 확신하지 못합니다.
예제와 같은 알파벳 이름 만 제외해야하는 경우 tst.tst
간단한 쉘 glob을 사용할 수 있습니다.
for f in [0-9]*.tst; do echo "$f"; done
bash 확장 glob 사용 (Ubuntu에서 기본적으로 활성화되어야 함)
주어진
$ ls *.tst
1.tst 2.tst 3.tst 4.tst 50.tst 5.tst bar.tst foo.tst
그런 다음 +([0-9])
하나 이상의 십진수 를 의미합니다.
for f in +([0-9]).tst; do echo "$f"; done
1.tst
2.tst
3.tst
4.tst
50.tst
5.tst
를 사용하여 확장 글 로빙이 활성화되었는지 확인 shopt extglob
하고 필요한 경우를 사용하여 shopt -s extglob
설정 (및을 사용하여 설정 해제 set -u extglob
) 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다