2014-01-26 7 views
0

이해하기 우선 sed와 awk보다 wget으로 다운로드 한 HTML 페이지에서 텍스트를 처리하는 더 나은 명령 행 방식이 있습니까? 그렇다면 저에게 말해 주시거나 의사에게 링크하십시오.sed/awk^및 []

둘째, 내가있어 다음의 식 ... 새로운 라인의 처음부터 ^ 검색 이후, 빈 gsub(/[^a-z]]*/, " ")비 편지 문자를 대체 않으며, 무엇 쉼표 , 여기에서 않는 이유에 대해 혼란? 그리고이 표현식에서 일치하지 않는 ]이있는 이유는 무엇입니까?

+1

"처리 텍스트"는 매우 모호한 설명입니다. 뭐하고 싶어? –

+0

'[^ notthesecharacters]' –

답변

4

HTML을 처리하려면 처리와 관련하여 원하는 것을 설명해야합니다.

문자는 문자 클래스에없는 경우 '행의 시작'역할을하며 행의 시작을 나타낼 수 있습니다 (예 : 정규식이 /^[^a-z]/ 인 경우). 문자 클래스 (대괄호로 묶인 []) 안에 있고 첫 번째 문자 인 경우 '다음 문자를 제외한 모든 문자'를 의미하는 메타 문자입니다.

gsub(/[^a-z]]*/, " ") 

수단 'AZ에없는 것을 교체하고 따옴표로 빈 (문자열로 0 개 이상의 닫기 대괄호 다음 :

gsub 기능은 글로벌 검색 및 교체 작업입니다 " "). 쉼표는 대체 문자열 인수에서 정규 인수를 분리하는 인수 분리 기호입니다. 정규식의 두 번째 닫는 대괄호는 놀랍습니다. 그것은 쉽게 실수 일 수 있습니다.

gsub 함수의 세 번째 인수가 없으므로 현재 입력 줄 $0에서 작동합니다.

+0

고마워요 조나단, 쉼표는 무엇을합니까? – p1nesap

+0

regex 인수를'gsub' 함수와'gsub' 함수의 대체 문자열 인수에서 분리합니다. 이것은 쉼표를 사용하기위한 매우 표준적인 역할입니다. 세 번째 인수가없는'gsub' 명령은 현재 입력 행인'$ 0'을 조작합니다. –

+0

그럼 그냥/""하지 않습니까? – p1nesap