[데이터 추출 및 가공 05] sed 사용법 3 : 정규 표현 (regular expression) (1) + 기호 사용, 그리고 csv형식 변환

데이터 추출과 가공
sed 사용법 3 : 정규 표현 (regular expression) (1) + 기호 사용, 그리고 csv형식 변환 sed를 쓸 때 -r 옵션을 사용하면 좀더 흥미진진하게 텍스트를 가공할 수 있습니다. 정규표현(regular expression)을 이용할 수 있기 때문입니다. (Mac을 사용하는 사람은 -r옵션 대신 -E 를 써야합니다.) 정규표현은 텍스트 패턴을 표현하는데 사용합니다. 예를 들어 이메일 주소를 만들때는 일정한 규칙을 따라야합니다. @기호가 도메인과 유저네임 사이에 있어야 하고, 도메인과 유저네임도 아무렇게나 만들지 않고 일정한 규칙을 따라야합니다. 이렇게 규칙이 있는 텍스트의 패턴을 표현하는 것이 정규표현(regular expression)입니다. sed 커맨드에서 정규표현을 사용하면 규칙이 있는 텍스트 패턴을 쉽게 찾을 수 있습니다. 이 때문에 정규표현을 사용할 수 있다는 것은 텍스트에서 데이터를 추출하거나 가공할때 아주 강력한 무기를 가지게 되는 것이나 마찬가지입니다. 대신 알아야 할 규칙들이 있습니다. 그래도 규칙을 배우는데 시간을 쓰는 것이 결코 아깝지 않을 만큼 유용합니다. 아주 쉬운 정규표현부터 시작하겠습니다. 터미널에서 아래의 커맨드를…
Read More

[데이터 추출 및 가공 04] sed 사용법 2: echo, 파이프, 그리고 s/word1/word2/gI

데이터 추출과 가공
sed 사용법 2: echo커맨드와 파이프 그리고 sed 커맨드에서 s/word1/word2/gI 이번에는 화면에 텍스트를 출력하는 커맨드를 먼저 알아보는 것으로 시작하겠습니다. 아래의 내용을 화면에 출력하려고 합니다. one과 two 사이에는 공백이 3개 있습니다. one two echo라는 커맨드를 써보겠습니다. echo 다음에 오는 텍스트나 숫자를 화면에 출력하는 커맨드입니다. 다음 커맨드를 터미널에서 쳐 보겠습니다. echo one two 일부러 one과 two사이에 3개의 공뱍을 넣었습니다. 하지만 위의 커맨드는 one이라는 텍스트와 two라는 텍스트를 따로 인식해 두 텍스트 사이에 공백 하나만 넣고 출력합니다. 출력 결과는 다음과 같습니다. one two 일부러 one과 two사이에 3개의 공뱍을 넣었습니다. 하지만 화면에는 one과 two를 출력하지만 커맨드에 있던 공백 세개중에 두개가 없어졌습니다. echo는 공백으로 나뉜 one과 two 두단어를 읽어들입니다. 그리고 화면에는 두 단어사이에 공백 하나만 사이에 넣고 출력하기 때문입니다. 이렇게 공백이 없어지는 것을 막으려면 공백 3개를 포함한 one과 two 를 하나의 텍스트 (또는 문자열)로 인식하게 해야 합니다.…
Read More

[데이터 추출 및 가공 03] sed 사용법 s/단어1/단어2/

데이터 추출과 가공
sed 사용법 1 curl을 사용해 내려받은 웹페이지는 우리가 웹브라우저에서 보는 내용보다 훨씬 복잡합니다. 우리가 웹브라우저로 보는 웹페이지와는 많이 다릅니다. html에 익숙하지 않은 사람들에겐 무슨 내용이 있는지 모를 수 있을 정도입니다. 그 이유는 <와 >로 둘러쌓인 html tag가 곳곳에 있기 때문입니다. 하지만 이 html tag때문에 우리가 편하게 웹페이지를 볼 수 있기도 합니다. 그 이유는 바로 이 html tag가 알려주는 대로 웹브라우저가 형식을 잘 갖춰 내용을 뷉브라우저 창에 보기좋게 출력하기 때문입니다. 웹 페이지에서 필요한 데이터를 얻고자 하는 사람에게는 이 html tag가 골치 아프기도 하고, 한편으로는 고맙기도 합니다. 제거해야할 대상이기도 하지만, 이게 있어서 중요한 정보를 선택해서 뽑아낼 수 있기 때문입니다. 후자의 한 예로 다른 웹페이지로 연결해주는 링크는 html tag중에 <a href="...">에 있습니다. <a href="..">라는 tag가 있는 곳을 찾아내면 링크의 정보를 알 수가 있습니다 웹페이지 외에도 다른 텍스트 자료도 상황은 비슷합니다. 애초에 결과를 파일에…
Read More