6 번째 위치 즉, "Happy"라는 특정 단어가있는 줄 수를 찾아야하는 csv 파일이 있습니다. 5 개의 쉼표 뒤에.
그래서 나는 이것을 쓰고 있습니다.
grep -P -c ",\{5,\}"'Happy' file.csv
하지만 0을 반환합니다.
파일의 내용은 다음과 같습니다.
123, abc, def, ghi, e444, 행복, 224, e44
grep -E '^([^,]*,){5}Happy' <in >out
Happy
5 번째 쉼표 바로 옆에있는 경우에만 찾을 수 있습니다. 6 번째 필드 내 어디에서나 찾으려면 약간의 호흡 공간을 추가하십시오.
grep -E '^([^,]*,){5}[^,]*Happy' <in >out
일치하는 행 수만 원하면 다음 -c
옵션을 사용하십시오 .
grep -cE '^([^,]*,){5}[^,]*Happy' <in >out
저는 정규식에 매우 익숙하지만 그렇지 않더라도 다른 종류보다 re 구문을 선택할 것이라고 생각합니다. 일부 기준선에 익숙해지면 나머지는 함께 떨어집니다. 정규식은 몇 가지 기본 구성 요소를 여러 가지 방법으로 결합하여 입력을 설명합니다.
*
Kleene Star
[
대괄호 표현 ]
^
부정 될 수 있음)의 발생을 나타냅니다.{
최소 ,
최대 }
반복
바로 이전 표현식의 발생 횟수를 지정합니다.
확장 정규식 ?
메타 문자는 {0,1}
.
(
하위 표현 )
.
캐릭터
^|$
^
다음 표현식에 대한 head-of-line 앵커, |
표현식 간의 교대 또는 $
테일 오브 라인 앵커를 나타냅니다.이것이 기본입니다. POSIX -E
xtended 정규식 구문에는 Kleene 도 포함되어 있습니다. Kleene 은 이전 표현식에 대해 하나 이상의 일치 가 필요하다는 점을 제외하고 모든면에서와 +
동일합니다 . 또한 대괄호 표현식 과 관련하여 가능한 모든 종류의 미묘함이 있습니다. 특히 내부 문자 클래스 와 반복 일치 방식과 관련이 있습니다. 대부분의 구현은 실제적으로 확장 기본 정규 표현식 처리하도록 적어도 상기 확장 된 구문을 다시 이전에 백 참조 서브 표현식 .*
[
]
[(:|.|=)
(=|.|:)]
\[num]
(
)
그러나 기본적으로 만 생각하면 위의 표현 중 하나 또는 다른 단일 문자는 그 자체로 표현이며 모두 전체 표현으로 결합되어 원하는 일치를 설명합니다.
모두 합치면 grep
위 의 표현은 다음과 같이 나뉩니다.
^([^,]*,){5}Happy
Happy
.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다