now is better than never
[엔지니어링] 리눅스 (2) 본문
데이터 탐색
sort
- 특정 컬럼을 기준으로 정렬
- -n : 숫자 정렬
-r : 내림차순 정렬 (ascending=False)
-k : 정렬할 컬럼 번호
1. 월급이 낮은 사원부터 출력
# sort -t ',' -nk 6 emp300.csv
2. 월급이 높은 사원부터 출력
# sort -t ',' -nrk 6 emp300.csv
3. 월급이 1200 이상인 사원들의 이름과 입사일을 최근 입사일 정렬로 출력
# awk '$6 >= 1200 {print $2, $5}' mp.txt | sort -rk 2
uniq
- 중복된 라인을 제거
- uniq 옵션 [파일명]
- 조건 필터링
- 정렬
- 중복 제거
# awk -F ',' '{print $3}' emp300.csv
# awk -F ',' '{print $3}' emp300.csv | sort -k 1
# awk -F ',' '{print $3}' emp300.csv | sort -k 1 | uniq
cp
- 파일 복사
- cp [원본 파일명] [복사 파일명]
- cp [위치/원본 파일명] [위치/복사 파일명] : 원하는 위치에 파일 복사
diff
- 두 파일간 차이점을 찾아서 알려주는 명령어
cp emp300.csv emp400.csv
cat emp400.csv
diff emp300.csv emp400.csv
- 차이가 없으면 결과 없음
find
- 파일을 찾을 때 사용하는 명령어
- find [directory] -name [file] -print : 해당 디렉토리 + 하위 디렉토리 안에 해당 파일이 있으면 출력
- fint [directory] -maxdepth [n] -name [file] -print : n 단계 하위 디렉토리 안에 해당 파일 있으면 출력
n = 1 : 현재 디렉토리만
자동화 스크립트
- 자동화 스크립트 코드 작성 -> 입력모드
- 스크립트를 auto.sh 로 저장 -> 편집모드
1. 터미널에서 vi auto.sh 입력
2. vi 편집기에서 i 를 눌러 입력모드로
3. 스크립트 입력
4. esc 눌러서 편집모드로 변경
5. 대문자 z 를 두 번 눌러서 저장 (ZZ)
6. sh auto.sh 를 입력해서 자동화 스크립트 실행
+ rm auto.sh : 스크립트 삭제
- echo = print
- -n = input
- read [variable] : variable 변수로 저장
- 1) 2) : 변수 값이 1 일 경우 , 2 일 경우
- easc : case 문 종료 (case 거꾸로)
tar
- 여러 개의 파일들을 압축 / 압축 해체
- tar cvf [압축 파일명] [압축할 파일들]
rat xvf [압축 파일명] [압축 해제 파일 위치] - c : compress, 파일 압축
v : view, 압축 과정 출력
f : file, 파일명 지정
x : extract, 압축 해제
-C : 압축 해제 파일 위치 지정 - unzip [zip 파일명] : 압축 해제
로컬로 다운받는건 모바텀으로,,,,
현재 디렉토리에 있는 csv 파일들을 하나의 파일로
# tar -csf csv_file.tar /root/*.csv
현재 디렉토리에 있는 csv 파일들을 하나의 압축 파일로
# tar -zcsf csv_file.tar.gz /root/*.csv
데이터 전처리
sed
- sed : 검색 + 내용 변경해서 출력
실제로 값이 변경되진 않음! -> 값 변경하고 싶으면 redirection 으로 다른 파일로 저장 - s/원래 문자/바꿀 문자/g
- grep : 파일의 특정 내용을 검색
sed s/KING/yyy/g emp.csv
<결과>
7839,yyy,PRESIDENT,,1981-11-17,5000,,10
7698,BLAKE,MANAGER,7839,1981-05-01,2850,,30
7782,CLARK,MANAGER,7839,1981-05-09,2450,,10
7566,JONES,MANAGER,7839,1981-04-01,2975,,20
7654,MARTIN,SALESMAN,7698,1981-09-10,1250,1400,30
7499,ALLEN,SALESMAN,7698,1981-02-11,1600,300,30
7844,TURNER,SALESMAN,7698,1981-08-21,1500,0,30
7900,JAMES,CLERK,7698,1981-12-11,950,,30
7521,WARD,SALESMAN,7698,1981-02-23,1250,500,30
7902,FORD,ANALYST,7566,1981-12-11,3000,,20
7369,SMITH,CLERK,7902,1980-12-09,800,,20
7788,SCOTT,ANALYST,7566,1982-12-22,3000,,20
7876,ADAMS,CLERK,7788,1983-01-15,1100,,20
7934,MILLER,CLERK,7782,1982-01-11,1300,,10
리눅스 + 파이썬
# 코랩에서 실행
for i in range(1, 101):
!cp /content/emp300.csv /content/emp{i}.csv
본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.
'빅데이터' 카테고리의 다른 글
스파크 (1) (0) | 2023.04.24 |
---|---|
mongoDB (1) (0) | 2023.04.20 |
[엔지니어링] 리눅스 (4) (0) | 2023.04.17 |
[엔지니어링] 리눅스 (3) (0) | 2023.04.13 |
[엔지니어링] 리눅스 (1) (3) | 2023.04.11 |