sort 와 유 니 크 명령
sort 명령 은 File 매개 변수 가 지정 한 파일 의 줄 을 정렬 하고 결 과 를 표준 출력 에 기록 합 니 다.
File 매개 변수 가 여러 파일 을 지정 하면 sort 명령 은 이 파일 들 을 연결 하고 파일 로 정렬 합 니 다.
문법
sort [- fbMnrtuk] [file or stdin] 옵션 과 인자: - f: 대소 문자 의 차 이 를 무시 합 니 다. 예 를 들 어 A 와 a 는 인 코딩 과 같 습 니 다. -b: 맨 앞의 스페이스 바 부분 무시 하기; -M: 월 이름 으로 정렬 합 니 다. 예 를 들 어 JAN, DEC 등 정렬 방법 입 니 다. -n: "순수 숫자"를 사용 하여 정렬 합 니 다 (기본 값 은 문자 형태 로 정렬 합 니 다). -r: 역방향 정렬; -u: 바로 유 니 크 입 니 다. 같은 데이터 에서 한 줄 의 대표 만 나타 납 니 다. -t: 구분자, 기본 값 은 [tab] 키 로 구분 합 니 다. -k: 그 구간 (field) 으로 정렬 한 다 는 뜻
1.2 sort 인 스 턴 스
1.2.1/etc/passwd 계 정 정렬
[root@localhost ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
elasticsearch:x:997:995:elasticsearch user:/nonexistent:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
kibana:x:996:994:kibana service user:/home/kibana:/sbin/nologin
logstash:x:995:993:logstash:/usr/share/logstash:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
sort 는 기본 값 으로 첫 번 째 데이터 로 정렬 되 며, 기본 값 은 문자열 로 정렬 되 기 때문에 알파벳 a 부터 정렬 됩 니 다.
1.2.2/etc/passwd 내용 은 다음 과 같이 구분 되 고 세 번 째 칸 으로 정렬 됩 니 다.
기본 값 은 문자열 로 정렬 되 어 있 으 며, 세 번 째 열 은 숫자 입 니 다.
[root@localhost ~]# cat /etc/passwd |sort -t ':' -k 3n
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
logstash:x:995:993:logstash:/usr/share/logstash:/sbin/nologin
kibana:x:996:994:kibana service user:/home/kibana:/sbin/nologin
elasticsearch:x:997:995:elasticsearch user:/nonexistent:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
sort 기본 값 은 오름차 순 정렬 입 니 다. 거꾸로 정렬 하려 면 다음 과 같 습 니 다.
[root@localhost ~]# cat /etc/passwd |sort -t ':' -k 3nr
mysql:x:1000:1000::/home/mysql:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
elasticsearch:x:997:995:elasticsearch user:/nonexistent:/sbin/nologin
kibana:x:996:994:kibana service user:/home/kibana:/sbin/nologin
logstash:x:995:993:logstash:/usr/share/logstash:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
1.2.3/etc/passwd 에 대해 서 는 6 열 두 번 째 문자 부터 네 번 째 문자 까지 정방 향 으로 정렬 한 다음 첫 번 째 도 메 인 을 바탕 으로 역방향 으로 정렬 합 니 다.
[root@localhost ~]# cat /etc/passwd |sort -t':' -k 6.2,6.4 -k 1r
bin:x:1:1:bin:/bin:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
kibana:x:996:994:kibana service user:/home/kibana:/sbin/nologin
elasticsearch:x:997:995:elasticsearch user:/nonexistent:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
logstash:x:995:993:logstash:/usr/share/logstash:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
1.2.4/etc/passwd 에 몇 개의 셸 이 있 는 지 확인 합 니 다./etc/passwd 의 일곱 번 째 도 메 인 을 정렬 한 다음 에 다시 시작 합 니 다.
[root@localhost ~]# cat /etc/passwd |sort -t':' -k 7 -u
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
halt:x:7:0:halt:/sbin:/sbin/halt
bin:x:1:1:bin:/bin:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
2.uniq
유 니 크 명령 은 정렬 된 파일 의 중복 줄 을 제거 할 수 있 습 니 다.
그래서 유 니 크 는 sort 와 자주 사용 합 니 다.즉, 유 니 크 가 역할 을 하기 위해 서 는 모든 중복 행 이 인접 해 야 한 다 는 것 이다.
2.1uniq 문법
uniq [- icu] 옵션 과 인자: - i: 대소 문자 의 차 이 를 무시 합 니 다. -c: 계수 진행 - u: 유일한 줄 만 표시
2.2uniq 실례
2.2.1 정렬 되 지 않 은 파일 을 다시 가 져 가면 줄 이 없 음 을 발견 할 수 있 습 니 다.
[root@localhost ~]# cat test
hello
world
ni
hao
hello
world
hao
hello
hao
[root@localhost ~]# uniq test
hello
world
ni
hao
hello
world
hao
hello
hao
먼저 파일 을 정렬 한 다음 에 다시 하 다.
[root@localhost ~]# cat test|sort|uniq
hao
hello
ni
world
줄 의 첫 번 째 위치 에서 이 줄 의 중복 횟수 를 출력 합 니 다.
[root@localhost ~]# cat test|sort|uniq -c
3 hao
3 hello
1 ni
2 world
2.2.2 중 복 된 줄 만 표시 하고 줄 의 맨 위 에 중 복 된 횟수 만 표시 합 니 다.
[root@localhost ~]# cat test|sort|uniq -dc
3 hao
3 hello
2 world
2.2.3 중복 되 지 않 는 줄 만 표시
[root@localhost ~]# cat test|sort|uniq -u
ni
3. 고급 용법
cat log |awk -F'|' '{print $3}'|sort|uniq -c|sort -nr|head -5
"""
1. 查看log
2. 使用awk工具, 指定分隔符为'|', 输出第三段
3. <2>作为sort的输出进行排序
4. <3>作为uniq的输入进行去重, -c参数显示重复数量
5. <4>作为sort的输入进行排序, -nr指定按照重复数量进行排序, 并且反序
6. <5>作为head的输入, 输出前5条数据
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.