나는 다음 명령을 실행했습니다.
grep -i 'bro*' shows.csv
그리고 그것을 출력으로 제공
1845307,2 Broke Girls,2011,138,6.7,89093
1702042,An Idiot Abroad,2010,21,8.3,29759
903747,Breaking Bad,2008,62,9.5,1402577
2249364,Broadchurch,2013,24,8.4,89378
1733785,Bron/Broen,2011,38,8.6,56357
2467372,Brooklyn Nine-Nine,2013,145,8.4,209571
7569592,Chilling Adventures of Sabrina,2018,36,7.6,69041
7221388,Cobra Kai,2018,31,8.7,72993
1355642,Fullmetal Alchemist: Brotherhood,2009,69,9.1,111111
118360,Johnny Bravo,1997,67,7.2,32185
455275,Prison Break,2005,91,8.3,465246
115341,Sabrina the Teenage Witch,1996,163,6.6,33458
1312171,The Umbrella Academy,2019,20,8,140800
3339966,Unbreakable Kimmy Schmidt,2015,51,7.6,61891
bro
뭐가 문제 야? 사실 o
그는 <브레이킹 배드>에도 출연하지 않았다. 다시 시도했는데 같은 결과가 나왔습니다. 마지막 문자는 고려하지 않습니다. 제가 쓴 방식에 문제가 있는 걸까요?
다음에서show.csv 파일을 다운로드할 수 있습니다.https://cdn.cs50.net/2021/x/seminars/linux/shows.csv
답변1
귀하의 코드에서는 o*
"0개 이상의 발생 o
"을 의미합니다. 정규 표현식을 glob 구문( o*
" o
문자 1개 및 0개 이상"을 의미) 과 혼동하고 있는 것 같습니다 .
그 뒤에는 정확히 0개의 문자가 Breaking Bad
있으므로 일치합니다 (대소문자를 구분하지 않음).o
Br
bro*
grep -i bro shows.csv
(제 생각엔) 당신이 원하는 대로 할 거예요.
답변2
여기서 o*는 "0개 이상"을 의미합니다. 별표가 있는 원하는 출력을 원할 경우 다음과 같이 o 뒤에 임의의 문자를 추가할 수 있습니다.
$ grep -i "broa*" show.csv
1845307,2 파산한 소녀,2011,138,6.7,89093 1702042,Foreign Idiot,2010,21,8.3,29759 2249364,Broadchurch,2013,24,8.4,89378 1733785,Brown/Broan,2011,38, 8 . 6,56357 2467372, 브루클린 나인-나인, 2013, 145, 8.4, 209571 1355642, 강철의 연금술사: 브라더후드, 2009, 69, 9.1, 111111
그렇지 않으면 grep -i "bro" shows.csv
작동합니다.
HTH.