now is better than never

[엔지니어링] 리눅스 (2) 본문

빅데이터

[엔지니어링] 리눅스 (2)

김초송 2023. 4. 12. 14:56

데이터 탐색

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 옵션 [파일명]
  1. 조건 필터링
  2. 정렬
  3. 중복 제거
# 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 : 현재 디렉토리만

 

자동화 스크립트

  1. 자동화 스크립트 코드 작성 -> 입력모드
  2. 스크립트를 auto.sh 로 저장 -> 편집모드
1. 터미널에서 vi auto.sh 입력
2. vi 편집기에서 i 를 눌러 입력모드로
3. 스크립트 입력
4. esc 눌러서 편집모드로 변경
5. 대문자 z 를 두 번 눌러서 저장 (ZZ)
6. sh auto.sh 를 입력해서 자동화 스크립트 실행
+ rm auto.sh : 스크립트 삭제

vi 입력모드

  • 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