본문 바로가기

Javascript

Node.js로 파일을 읽어서 특정 부분 찾기

이전 글 (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