Linux 에서 sort, uniq, cut, wc 명령 상세 설명

12256 단어 Shell실 용 공구
Linux 에서 sort, uniq, cut, wc 명령 상세 설명
  출처: hellodev
본 고 는 주로 Linux 에서 sort, uniq, cut, wc 라 는 네 가지 명령 의 사용 방법 에 대해 상세 하 게 설명 하 였 으 며, 당신 에 게 도움 이 되 기 를 바 랍 니 다.
sort
sort 명령 은 File 매개 변수 가 지정 한 파일 의 줄 을 정렬 하고 결 과 를 표준 출력 에 기록 합 니 다.File 매개 변수 가 여러 파일 을 지정 하면 sort 명령 은 이 파일 들 을 연결 하고 파일 로 정렬 합 니 다.
sort 문법
[root@www ~]# sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思

/etc/passwd 계 정 정렬
[root@www ~]# cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

sort 는 기본 값 으로 첫 번 째 데이터 로 정렬 되 며, 기본 값 은 문자열 로 정렬 되 기 때문에 알파벳 a 부터 정렬 됩 니 다.
/etc/passwd 내용 은: 로 구 분 됩 니 다. 세 번 째 칸 으로 정렬 하고 싶 습 니 다. 어떻게 해 야 합 니까?
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

기본적으로 문자열 로 정렬 합 니 다. 숫자 로 정렬 하려 면:
cat /etc/passwd | sort -t ':' -k 3n
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

기본 값 은 오름차 순 정렬 입 니 다. 거꾸로 정렬 하려 면 다음 과 같 습 니 다.
cat /etc/passwd | sort -t ':' -k 3nr
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
ntp:x:106:113::/home/ntp:/bin/false
messagebus:x:105:109::/var/run/dbus:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

/etc/passwd 에 대해 서 는 여섯 번 째 도 메 인의 두 번 째 문자 부터 네 번 째 문자 까지 정방 향 으로 정렬 한 다음 첫 번 째 도 메 인 을 바탕 으로 역방향 으로 정렬 합 니 다.
cat /etc/passwd |  sort -t':' -k 6.2,6.4 -k 1r      
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh

/etc/passwd 에 셸 이 몇 개 있 는 지 보기:/etc/passwd 의 일곱 번 째 도 메 인 을 정렬 한 다음 다시 가 져 오기:
cat /etc/passwd |  sort -t':' -k 7 -u
root:x:0:0:root:/root:/bin/bash
syslog:x:101:102::/home/syslog:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

uniq
유 니 크 명령 은 정렬 된 파일 의 중복 줄 을 제거 할 수 있 기 때문에 유 니 크 는 sort 와 자주 사용 합 니 다.즉, 유 니 크 가 역할 을 하기 위해 서 는 모든 중복 행 이 인접 해 야 한 다 는 것 이다.
문법
[root@www ~]# uniq [-icu]
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示唯一的行

testfile 의 내용 은 다음 과 같다.
cat testfile
hello
world
friend
hello
world
hello

정렬 되 지 않 은 파일 을 직접 삭제 하면 줄 이 삭제 되 지 않 습 니 다.
#uniq testfile  
hello
world
friend
hello
world
hello

정렬 파일
#cat words | sort |uniq
friend
hello
world

정렬 후 중복 줄 을 삭제 하고 줄 의 첫 번 째 위치 에서 중복 되 는 횟수 를 출력 합 니 다.
#sort testfile | uniq -c
1 friend
3 hello
2 world

중 복 된 줄 만 표시 하고 줄 의 중 복 된 횟수 만 표시 합 니 다.
#sort testfile | uniq -dc
3 hello
2 world

중복 되 지 않 는 줄 만 표시
sort testfile | uniq -u
friend

cut
cut 명령 은 텍스트 파일 이나 텍스트 흐름 에서 텍스트 열 을 추출 할 수 있 습 니 다.
cut 문법
[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
选项与参数:
-d  :后面接分隔字符。与 -f 一起使用;
-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c  :以字符 (characters) 的单位取出固定字符区间;

PATH 변 수 는 다음 과 같 습 니 다.
[root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2       | 3   | 4       | 5            | 6            | 7

PATH 변 수 를 꺼 내 고 다섯 번 째 경 로 를 찾 겠 습 니 다.
#echo $PATH | cut -d ':' -f 5
/usr/local/bin

PATH 변 수 를 꺼 내 세 번 째 와 다섯 번 째 경 로 를 찾 겠 습 니 다.
#echo $PATH | cut -d ':' -f 3,5
/sbin:/usr/local/bin

PATH 변 수 를 꺼 내 세 번 째 에서 마지막 경 로 를 찾 겠 습 니 다.
echo $PATH | cut -d ':' -f 3-
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games

PATH 변 수 를 꺼 내 서 첫 번 째 에서 세 번 째 경 로 를 찾 겠 습 니 다.
#echo $PATH | cut -d ':' -f 1-3
/bin:/usr/bin:/sbin:

PATH 변 수 를 꺼 내 면 첫 번 째 부터 세 번 째, 그리고 다섯 번 째 경 로 를 찾 아야 합 니 다.
echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin

유 틸 리 티:/etc/passwd 사용자 와 셸 만 표시 합 니 다.
#cat /etc/passwd | cut -d ':' -f 1,7 
root:/bin/bash
daemon:/bin/sh
bin:/bin/sh

wc
통계 파일 안에 몇 개의 단어, 몇 줄, 몇 개의 문자 가 있 는 지.
문법
[root@www ~]# wc [-lwm]
选项与参数:
-l  :仅列出行;
-w  :仅列出多少字(英文单字);
-m  :多少字符;

기본적으로 wc 통계/etc/passwd 사용
#wc /etc/passwd
40   45 1719 /etc/passwd

40 은 줄 수 이 고 45 는 단어 수 이 며 1719 는 바이트 수 이다.
wc 의 명령 은 비교적 간단하게 사용 되 며, 매개 매개 변 수 는 다음 과 같이 사용 합 니 다.
#wc -l /etc/passwd   #统计行数,在对记录数时,很常用
40 /etc/passwd       #表示系统有40个账户

#wc -w /etc/passwd  #统计单词出现次数
45 /etc/passwd

#wc -m /etc/passwd  #统计文件的字节数
1719

좋은 웹페이지 즐겨찾기