[리눅스] 파일로 작업하기

Becoming a Data Engineer ·2023년 9월 8일
0

리눅스

목록 보기
4/9
post-thumbnail

cat : 파일 내용 출력


concatenate files and print on the standard output

  • cat <file1> <file2> ... <fileN>

    • 입력 값으로 파일을 하나만 넣으면 단순히 파일의 내용을 터미널에 출력
    • 입력 값으로 파일을 여러 개 넣으면 넣은 파일의 값을 한 번에 결합해서 터미널에 출력
    
    hyojin@computer:~/test$ cat test.txt
    hello my name is JIN!
    
    hyojin@computer:~/test$ cat test2.txt
    Welcome Linux World! You can be a master!
    
    hyojin@computer:~/test$ cat test.txt test2.txt
    hello my name is JIN!
    Welcome Linux World! You can be a master!

less : 한 페이지씩 파일 내용 보기


한페이지씩 보여줘서 긴 파일을 볼 때 유용함

  • Space bar : 다음 페이지로 이동
  • b : 이전 페이지로 이동
  • q : 밖으로 나옴
  • 단어 검색하는 방법 :: / 입력 -> 검색어 입력 -> Enter 입력

tac : 마지막 줄부터 파일 내용 출력


cat과 마찬가지로 결합하고 출력하는 데 마지막 줄부터 출력한다.

hyojin@computer:~/test$ cat test.txt
1 one
2 two
3 three

hyojin@computer:~/test$ tac test.txt
3 three
2 two
1 one

rev : 문자의 순서를 반전시켜 파일 내용 출력


cat, tac 처럼 파일의 내용을 출력하는데 줄의 순서는 그대로이고 각 줄 안에서의 문자의 순서를 반전시킨다.

hyojin@computer:~/test$ cat test.txt
1 one
2 two
3 three

hyojin@computer:~/test$ rev test.txt
eno 1
owt 2
eerht 3

head / tail : 파일 내용의 일부 출력


head : output the first part of files
tail : output the last part of files

(default 10줄)

  • -n [N줄] : print the first NUM lines instead of the first 10
╭─ ~/test 
╰─ cat test.txt 
line 1
line 2
line 3
line 4
line 5 (end)

╭─ ~/test 
╰─ head -n 3 test.txt 
line 1
line 2
line 3

╭─ ~/test
╰─ head -2 test.txt  
line 1
line 2

╭─ ~/test 
╰─ tail -n 3 test.txt       
line 3
line 4
line 5 (end)
  • -c [바이트 수] : output the last NUM bytes

tail 추가 옵션

  • -f : output appended data as the file grows
    • 리스닝 상태에서 파일에 추가되는 것들이 있으면 추가되는 것들을 새로 출력하는 것
    • 데이터 로그나 로그 파일 등 로그를 모니터링할 때 유용
    • 빠져나오는 방법 ctrl+c

wc : 줄, 단어, 바이트 count 정보 출력


print newline, word, and byte counts for each file

hyojin@computer:~/test$ cat test.txt
1 one
2 two
3 three

hyojin@HDPL35175:~/test$ wc test.txt
 3  6 20 test.txt        (---> newline, word, byte)
  • -l, --lines : print the newline counts
hyojin@computer:~/test$ wc -l test.txt
3 test.txt
  • -w, --words : print the word counts
hyojin@computer:~/test$ wc -w test.txt
6 test.txt
  • -m, --chars : print the character counts
hyojin@computer:~/test$ wc -m test.txt
20 test.txt 
  • -c, --bytes : print the byte counts
hyojin@computer:~/test$ wc -c test.txt
20 test.txt

sort : 정렬


파일의 내용을 정렬

예 : AbBcCdghxXyzZ 알파벳 순(소문자->대문자)으로 정렬

hyojin@computer:~/test$ cat test.txt
red
orange
yellow
green
blue
purple
indigo
violet

hyojin@computer:~/test$ sort test.txt
blue
green
indigo
orange
purple
red
violet
yellow
  • -r, --reverse : reverse the result of comparisons
hyojin@computer:~/test$ sort test.txt
blue
green
indigo
orange
purple
red
violet
yellow

hyojin@computer:~/test$ sort -r test.txt
yellow
violet
red
purple
orange
indigo
green
blue
  • -n, --numeric-sort : 숫자들(string numerical value) 의 크기를 비교
hyojin@computer:~/test$ cat price.txt
49.00
19.99
0.50
199.99
5.00
13

hyojin@HDPL35175:~/test$ sort price.txt       
(---> 각 숫자들의 크기를 비교하지 않고 맨 앞 숫자 한 자리씩 비교) 
0.50
13
19.99
199.99
49.00
5.00

hyojin@HDPL35175:~/test$ sort -n price.txt
0.50
5.00
13
19.99
49.00
199.99
  • -u, --unique : 중복을 제외하고 고유한 값만 정렬
hyojin@computer:~/test$ cat unique.txt	
hi
hi
hi
nice
good
good
hyojin
hyojin
daniel

hyojin@computer:~/test$ sort -u unique.txt
daniel
good
hi
hyojin
nice
  • -k [정렬하고자 하는 열 번호] : 데이터의 특정한 열을 정해서 정렬 (열은 기본적으로 공백문자로 구분됨)
hyojin@computer:~/test$ cat price.txt
racecar 49.00 3
chocolate 19.99 12
pencil 0.50 49
house 199.99 1
pizza 5.00 1
fish 13 2

hyojin@computer:~/test$ sort price.txt
(---> 알파벳 순으로 정렬 : c, f, h, pe, pi, r)
chocolate 19.99 12
fish 13 2
house 199.99 1
pencil 0.50 49
pizza 5.00 1
racecar 49.00 3

hyojin@computer:~/test$ sort -n price.txt
(---> 각 줄이 모두 숫자는 아니므로 제대로 정렬되지 않음)
chocolate 19.99 12
fish 13 2
house 199.99 1
pencil 0.50 49
pizza 5.00 1
racecar 49.00 3
	
hyojin@computer:~/test$ sort -nk2 price.txt
(---> 2번 열(-k2)인 숫자값(-n)으로 정렬 : -nk2)
pencil 0.50 49
pizza 5.00 1
fish 13 2
chocolate 19.99 12
racecar 49.00 3
house 199.99 1
profile
I want to improve more 👩🏻‍💻

0개의 댓글