티스토리 뷰
[linux] 파일로 작업하기 (cat, less, tac, rev, head, tail, wc, sort)
dev_jun 2022. 8. 4. 12:12cat
파일의 내용을 데이터 등을 이용해서 열지 않고 터미널에 출력하는 기능. 알고 있으면 매우 유용한 기능이다.
cat <filename>
- 물론 데이터를 사용하여 파일의 내용을 확인할 수 있지만, 개인적으로는 에디터를 사용하여 파일의 내용을 확인하면 에디터를 닫았을 때, 파일의 내용이 터미널에 남아있지 않아서 많은 내용을 복사하거나 확인해야할 때는 불편함이 존재하는데, 이럴 때
cat
명령어를 사용하면 상당히 편리하게 작업을 진행할 수 있다.
- 물론 데이터를 사용하여 파일의 내용을 확인할 수 있지만, 개인적으로는 에디터를 사용하여 파일의 내용을 확인하면 에디터를 닫았을 때, 파일의 내용이 터미널에 남아있지 않아서 많은 내용을 복사하거나 확인해야할 때는 불편함이 존재하는데, 이럴 때
두번째 기능은 결합 기능이다. 사실 cat 명령어는 결합하다는 뜻의
concatenates
에서 생겼다. 이러한 어원에 맞게 파일을 결합하여 출력하는 기능도 있다.cat <file1> <file2> ... <file n>
여러개의 파일의 내용을 합쳐서 터미널에 출력할 수 있다.
less
cat
명령어를 사용하여 파일의 내용을 확인하려고 할 때, 확인하려는 파일이 굉장히 긴 내용의 파일이라면 출력을 하더라도 필요한 부분을 알아보기 힘들다. 이럴때 less
를 사용하면 보다 효율적으로 파일의 원하는 내용을 확인할 수 있다.
바로 파일의 내용을 대화식으로 나눠서 보여주고 스크롤이 가능하고, 페이지 단위로 넘길 수 있고, 검색도 가능하다. 그리고 파일의 가장 처음 내용부터 보여준다. 다만 명령어를 입력한 창이 아닌 새창으로 보이기 때문에 나왔을 때, 파일의 내용은 터미널에 남아있지 않다.
less <filename>
space
orf
로 다음 페이지로 가기b
로 이전 페이지로 가기Enter
orDown arrow
로 한줄씩 내려가기/
로 검색하기
tac and rev
tac
cat
명령어와 스펠링이 거꾸로 되어있다. 실제로 하는 기능도 cat 기능과 반대라고 생각하면 된다.cat
과 마찬가지로 파일을 결합하고 출력하는데, 순서가 반대다. 파일의 마지막 줄부터 출력해준다.- 데이터의 순서를 바꿀 때? 정도 말고는 많이 사용되는 명령어는 아닌 듯 하다.
rev
tac
또는cat
처럼 파일을 출력한다.- 다른점으로는 파일의 각 줄 안에서 순서를 반대로 바꿔준다. 즉, 수평적으로 뒤집는다.
tac
은 파일의 위 아래를 변경했다면rev
는 파일의 줄 순서는 그대로인데 각 줄 안에서 문자의 순서가 반전되는 것이다.
head and tail
- 파일의 각 머리와 꼬리로 파일의 시작부분과 끝 부분을 보거나 관련된 작업을 할 때 사용된다.
- 두 명령어 모두 default 값은
--line
또는-n
옵션으로 변경할 수 있다. - 혹은 더 짧게
-3
과 같이 숫자만 바로 입력하여 사용할 수 있다.
head --line 5 <file>
tail --line 5 <file>
head -n 5 <file>
tail -n 5 <file>
head -5 <file>
tail -5 <file>
-c
옵션은 바이트 수를 의미한다. 각각 파일의 앞, 뒤부터 입력한 숫자만큼의 바이트의 문자만 출력한다.head -c 8 <file> tail -c 8 <file>
-f
or--follow
이 옵션은
tail
에만 존재하는 옵션이다.해당 옵션을 부여했을 시, 리스닝 상태로 대기하고 적용한 파일에 내용이 추가되었을 경우 실시간으로 수정한 파일 내용을 보여준다. 이를 테스트하기 위해서는 터미널 창을 하나 더 띄워서 테스트하면 된다.
tail -f <file>
이는 데이터 로그나 로그 파일 등 로그를 모니터링 할 때 유용한 명령어이다.
한쪽 터미널에는
-f
옵션으로 로그 파일을 리스닝 상태로 두고, 다른 터미널에서는 해당 로그에 영향을 미칠 수 있는 작업을 하면 로그를 실시간으로 확인할 수 있기 때문이다.
wc
wc
는word count
의 약자로 특정 파일의 줄 수나 단어 수 혹은 바이트 수를 알려준다.- 컴퓨터에 얼마나 많은 패턴이 일치하는지, 특정 문자열을 포함하는 파일의 수가 몇개인지 등 확인할 때 유용하다.
- 단독적으로 사용하기보다는 파이프라인에서 보다 유용하게 사용이 가능하다.
- 명령어를 입력하면 출력 결과로 네 컬럼의 숫자와 파일이름이 출력된다. 컬럼의 head는 출력되지 않기 때문에 옵션을 함께 사용하여 혼동이 없게 사용하는 것이 좋다.
- 첫번째 컬럼: 파일 안의 줄 수
-l
옵션으로 단일 확인이 가능하다.
- 두번째 컬럼: 단어의 수
-w
옵션으로 단일 확인이 가능하다.
- 세번째 컬럼: 바이트 수
-c
옵션으로 단일 확인이 가능하다.
- 첫번째 컬럼: 파일 안의 줄 수
wc <file name>
wc -l <file name> # 줄 수
wc -w <file name> # 단어의 수
wc -c <file name> # 바이트 수
wc -m <file name> # 문자 수
sort
기본적으로 정렬을 하는 명령어이다.
sort <filename>
- 조금 주의해야할 점은 기본적으로 다른 프로그래밍 언어에서
sort
를 사용하면 대문자 → 소문자 순으로 정렬이 되는데, 이sort
는 대소문자가 함께 정렬되며 소문자가 앞으로 정렬된다. e.g) aAbBcC
- 조금 주의해야할 점은 기본적으로 다른 프로그래밍 언어에서
-r
옵션으로 반대로 정렬할 수 있다.-n
옵션으로 숫자를 정렬할 수 있다.- 숫자 정렬 시 해당 옵션을 사용해 주지 않으면 기본적으로 생각하는 결과와는 다르게 숫자 자체의 크기를 비교하지 않고 각 자릿수를 비교하여 정렬을 하니 주의해야한다.
- e.g) 0.5 13 199 49 5.0
- 각 자릿수부터 정렬하기 때문에 가장 앞의 자릿수가 1인게 먼저 정렬되고 가장 앞의 숫자가 큰 5가 마지막으로 정렬되었다.
-u
중복값을 제거하고 고유값만 정렬한다.-k
옵션을 사용하여 필드(컬럼)을 기준으로 정렬할 수 있다.- 여러개의 필드가 있을 경우 그냥 정렬을 하면 원하는 대로 컬럼의 정렬이 이루어지지 않을 수 있다. 따라서 원하는 필드를 지정하여 해당 필드를 key로 정렬을 할 수 있도록 해주는 옵션이다.
- Total
- Today
- Yesterday
- OS
- CSAPP
- DFS
- kubernetes
- kafka
- 백준
- 파이썬
- Hadoop
- Python
- elasticsaerch
- 빅데이터를지탱하는기술
- logstash
- cka
- Algorithm
- 이코테
- CS
- BOJ
- mahout
- GROK
- HDFS
- Elasticsearch
- DP
- sqoop
- 프로그래머스
- 네트워크
- Flutter
- heapq
- oozie
- Espher
- 빅데이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |