이전 글 (http://zeany.net/50) 에서는 Node.js 설치에 대해서 살펴봤습니다.
이번에는 예전에 Python으로 했던 명령행 인수로 받은 파일을 한 줄씩 읽어서 ':'로 나눈 후 첫번째 열 (passwd 파일의 사용자)만 출력하는 예제를 Node.js로 해보도록 하겠습니다.
참고로 이전 파이썬으로 파일을 읽어서 특정 부분 찾기는 http://zeany.net/7에 있습니다.
동일하게 아래 소스는 split.js로 이름을 지었습니다.
1~4 : 명령행 인수로 파일명을 입력해 주지 않으면 안내 문구를 출력하고 프로그램을 종료합니다.
6 : 한줄씩 처리하기 위해 readline 모듈을 불러옵니다.
7 : 파일을 처리하기 위해 fs 모듈을 불러옵니다.
9~11 : 명령행 인수로 지정 받은 파일 (process.argv[2]) 로부터 한 줄씩 읽도록 지정합니다. 출력도 지정할 수 있으나 이 프로그램에서는 해당 사항이 없어 생략합니다.
13~16 : 각 라인을 ':'로 나눈 배열의 첫번째 인수(사용자명)만 출력합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if (process.argv.length != 3) { console.log('usage: node split.js passwd'); process.exit(); } const readline = require('readline'); const fs = require('fs'); const lines = readline.createInterface({ input: fs.createReadStream(process.argv[2]) }); lines.on('line', function (line) { s = line.split(':'); console.log(s[0]); }); |
다음은 이전과 동일한 샘플 passwd 파일입니다. (unix의 /etc/passwd 파일)
oracle:x:1021:1020:Oracle User:/data/network/oracle:/bin/bash
hello:x:2021:2020:Normal User:/home/hello:/bin/bash
실행 결과도 이전과 동일합니다.
oracle
hello
'Javascript' 카테고리의 다른 글
자바스크립트 조건문과 반복문 - if, switch, for, while (0) | 2017.03.09 |
---|---|
자바스크립트 연산자 및 우선순위 정리 (0) | 2017.03.07 |
자바스크립트 변수 선언 및 기본 데이터 타입 (0) | 2017.03.06 |
Node.js 설치 및 Sublime Text를 이용한 실행 (1) | 2017.01.30 |