나는 foobar.txt라는 텍스트 파일을 가지고 있는데, 그 길이는 10KB 정도입니다. 그러나 다음 일치 검색 명령은 고성능 Linux 컴퓨터에서 약 10 초가 걸립니다.왜 배쉬 패턴이 일치합니까? (* [[: class :]]) foobar가 느린 이유는 무엇입니까?
bash>shopt -s extglob
bash>[[ `cat foobar.txt` == ?(*[[:print:]])foobar ]]
일치하는 항목 없음 : foobar.txt의 모든 문자가 인쇄 가능하지만 "foobar"문자열이 없습니다.
검색은 두 가지 대안을 일치하도록 시도해야한다, 그들 각각이 일치하지 않습니다
"foobar"
instantenous의 그
*[[:print:]]foobar
- 같이 가야하는 것은 어떤 :
는 스캔한다 한 번에 한 문자 씩 문자를 파일화 할 때마다 다음 문자가 있는지 확인하십시오.
[[:print:]]foobar
또한 속도가 빨라야하며 문자 당 밀리 초가 걸릴 수 없습니다. 내가 떨어 뜨리면?
는 사실, 즉,이
bash>[[ `cat foobar.txt` == *[[:print:]]foobar ]]
이 순간하다 할 수있다. 그러나 이것은 위의 두 번째 대안인데, 첫 번째 대안은 없다.
왜 그렇게 오래?
그런 것들을 위해 특별한 유틸리티를 사용해야합니다. ''grep'',''sed'' 또는'awk''와 비슷합니다. –