공개 CSV 파일의 약간 수정된 버전을 배포했습니다. 수정된 CSV 파일을 생성하기 위해 짧은 한 줄의 grep 명령을 사용했습니다.
grep -Ev '^([A-Za-zA-Za-z]|[0-90-9]*),' input.csv
실제 프로젝트는여기.
사용자보고서로케일이 올바르게 설정되어 있어도 Mac의 BSD grep은 GNU grep과 다른 결과를 제공합니다. 왜 이런 일이 발생하는지 잘 모르겠고 테스트할 Mac이나 BSD 시스템도 없습니다. (리눅스에 BSD grep을 설치하는 방법이 있나요? 빠른 검색으로는 아무것도 못 찾았는데...)
위 명령이 동일한 로케일에서 다른 결과를 반환하는 이유는 무엇입니까? 죄송합니다. 원본 CSV 파일은 제공되지 않지만 200MB를 초과하므로 다운로드할 수 있습니다.여기원한다면 lex.csv
v2.3.0 입니다.
데이터를 좀 더 자세히 설명하기 위해 CSV 파일은 일본어 단어 목록입니다. 첫 번째 필드는 인용되지 않은 문자 그대로의 단어입니다. 여기서 정규식의 목표는 다음 항목 중 하나를 제거하는 것입니다.
- 라틴 알파벳의 편지
[A-Za-zA-Za-z]
- 임의의 길이의 순수수
[0-90-9]*
유니코드 문자는전각 라틴어일본에서 레거시적인 이유로 사용되는 캐릭터입니다.
다음은 무작위로 선택된 예시 데이터입니다.
Fishstat,16201,17684,438,名詞,普通名詞,一般,*,*,*,エフアイエスエイチエスティーエーティー,FISHSTAT,Fishstat,エフアイエスエイチエスティーエーティー,Fishstat,エフアイエスエイチエスティーエーティー,記号,*,*,*,*,*,*,体,エフアイエスエイチエスティーエーテ
ィー,エフアイエスエイチエスティーエーティー,エフアイエスエイチエスティーエーティー,エフアイエスエイチエスティーエーティー,16,C1,*,25110105422963200,91350
FINA,14662,15435,406,名詞,固有名詞,一般,*,*,*,エフアイエヌエー,FINA,FINA,エフアイエヌエー,FINA,エフアイエヌエー,固,*,*,*,*,*,*,固有名,エフアイエヌエー,エフアイエヌエー,エフアイエヌエー,エフアイエヌエー,7,*,*,57503092366778880,209195
FINA,14662,15435,406,名詞,固有名詞,一般,*,*,*,エフアイエヌエー,FINA,FINA,エフアイエヌエー,FINA,エフアイエヌエー,固,*,*,*,*,*,*,固有名,エフアイエヌエー,エフアイエヌエー,エフアイエヌエー,エフアイエヌエー,7,*,*,57503092366778880,209195
FIA,16210,17693,438,名詞,普通名詞,一般,*,*,*,エフアイエー,FIA,FIA,エフアイエー,FIA,エフアイエー,記号,*,*,*,*,*,*,体,エフアイエー,エフアイエー,エフアイエー,エフアイエー,5,C2,*,1099520251404800,4000
FIA,16210,17693,438,名詞,普通名詞,一般,*,*,*,エフアイエー,FIA,FIA,エフアイエー,FIA,エフアイエー,記号,*,*,*,*,*,*,体,エフアイエー,エフアイエー,エフアイエー,エフアイエー,5,C2,*,1099520251404800,4000
エフ・アイ・シー,14659,15432,-1018,名詞,固有名詞,一般,*,*,*,エフアイシー,FIC-FIC,エフ・アイ・シー,エフアイシー,エフ・アイ・シー,エフアイシー,固,*,*,*,*,*,*,固有名,エフアイシー,エフアイシー,エフアイシー,エフアイシー,5,*,*,52112736611607040,189585
FIC,14659,15432,406,名詞,固有名詞,一般,*,*,*,エフアイシー,FIC-FIC,FIC,エフアイシー,FIC,エフアイシー,固,*,*,*,*,*,*,固有名,エフアイシー,エフアイシー,エフアイシー,エフアイシー,5,*,*,52112736645161472,189585
FIC,14659,15432,406,名詞,固有名詞,一般,*,*,*,エフアイシー,FIC-FIC,FIC,エフアイシー,FIC,エフアイシー,固,*,*,*,*,*,*,固有名,エフアイシー,エフアイシー,エフアイシー,エフアイシー,5,*,*,52112736645161472,189585
FIZ,16209,17692,438,名詞,普通名詞,一般,*,*,*,エフアイゼット,FIZ,FIZ,エフアイゼット,FIZ,エフアイゼット,記号,*,*,*,*,*,*,体,エフアイゼット,エフアイゼット,エフアイゼット,エフアイゼット,5,C1,*,25108181277614592,91343
FIZ,16209,17692,438,名詞,普通名詞,一般,*,*,*,エフアイゼット,FIZ,FIZ,エフアイゼット,FIZ,エフアイゼット,記号,*,*,*,*,*,*,体,エフアイゼット,エフアイゼット,エフアイゼット,エフアイゼット,5,C1,*,25108181277614592,91343
FIT,16209,17692,438,名詞,普通名詞,一般,*,*,*,エフアイティー,FIT,FIT,エフアイティー,FIT,エフアイティー,記号,*,*,*,*,*,*,体,エフアイティー,エフアイティー,エフアイティー,エフアイティー,5,C1,*,25107906399707648,91342
FIT,16209,17692,438,名詞,普通名詞,一般,*,*,*,エフアイティー,FIT,FIT,エフアイティー,FIT,エフアイティー,記号,*,*,*,*,*,*,体,エフアイティー,エフアイティー,エフアイティー,エフアイティー,5,C1,*,25107906399707648,91342
사용자 보고서에 따르면 BSD grep 정규 표현식은 GNU grep보다 더 많은 항목을 제외합니다(약 8000 대 232). 불행히도 그들은 정확한 차이점을 보고하지 않으므로 어떤 종류의 항목이 다르게 처리될지 잘 모르겠습니다.
이 문제를 신고한 사용자에게 연락했는데 그 사용자가 제공한 정보는 다음과 같습니다.주요 요점BSD grep과 일치하는 항목 수입니다. 이 명령을 사용하여 항목을 찾았음을 나타냅니다( -v
사용되지 않은 것 같습니다).
grep -Ev '^([A-Za-zA-Za-z]|[0-90-9]*),' lex.csv
얼핏 보면 구두점과 이모티콘(예 (´・ω・`)
: )이 있는 것처럼 보입니다. 이것이 왜 내 범위에 포함되는지는 확실하지 않습니다. 또한 잘못된 것처럼 보이는 다중 문자 알파 항목도 포함되어 있습니다.