标签:linux文本处理基础命令 1、sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste
Liunx文本处理基础命令是运维工程师不可绕过,必须熟悉掌握的关键命令,它们组合起来就像一扇门,是通往文本三剑客(grep,sed,awk)及shell脚本编程的必经之路。
更新至:1、Sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste
1、Sort:
#sort命令主要用于排序,可针对文本文件内容,以行为单位进行排序。
SYNOPSIS:sort [OPTION]... [FILE]...
常用选项:不加选项默认为以ASCII码进行排序;
-f:排序时忽略大小写;
-n:按数值大小排序;
-o </path/to/file>:排序后结果输出文件(如果要直接修改本文件,要用-o,用重定向和tee命令都会清空原文件内容);
-r:逆序显示;
-t <分隔字符>:指定排序时所用分隔字符;
-k 选择以哪个区间进行排序;
E.g:
# cat /etc/passwd |sort -n -k3 -t: -o /backup/passwd.bak
#以:为分隔符,第三个区间,进行数值排序,并将结果输出到/backup/passwd.bak
polkitd:x:997:996:User for polkitd:/:/sbin/nologin
systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
simpletime:x:1000:1000:SimpleTime:/home/simpletime:/bin/bash
allen:x:1001:0::/home/allen:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
2、tr
#tr命令可以对来自标准输入的字符进行替换、压缩和删除。作用强大。
SYNOPSIS:tr [OPTION]... SET1 [SET2]
常用选项:
-c或--complerment:把SET1字符替换完SET2
-d或--delete:删除所有属于SET1的字符;
-s或--squeeze-repeats:删除连续且重复的字符;
E.g:
# echo "Hello Word"|tr "a-z" "A-Z"
HELLO WORD
# echo H1e3l3l4o23W323o43r54d6|tr -d "[[:digit:]]"
HelloWord
# echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]"
13342332343546[root@localhost ~]#
# echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]\n"
13342332343546
# echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]\n"|tr -s "[1-9]"
134232343546
3、cut
#cut命令用来显示行中的指定部分,删除文件中指定字段。
SYNOPSIS:cat [OPTION]... [FILE]...
常用选项:
-d:指定分隔符
-f:指定显示字段范围
-c: 只显示指定范围内的字符
--complement:反向显示
E.g:
# cat passwd|cut -d: -f3-4
89:89
38:38
72:72
1000:1000
1001:0
#cat passwd|cut -d: -f3-4 --complement
postfix:x::/var/spool/postfix:/sbin/nologin
ntp:x::/etc/ntp:/sbin/nologin
tcpdump:x::/:/sbin/nologin
simpletime:x:SimpleTime:/home/simpletime:/bin/bash
allen:x::/home/allen:/bin/bash
# cat passwd|cut -c2-
ostfix:x:89:89::/var/spool/postfix:/sbin/nologin
tp:x:38:38::/etc/ntp:/sbin/nologin
cpdump:x:72:72::/:/sbin/nologin
impletime:x:1000:1000:SimpleTime:/home/simpletime:/bin/bash
llen:x:1001:0::/home/allen:/bin/bash
4、uniq
#uniq可以用来去除排序过程中文件的重复行并统计重复行次数,但重复行必须是相邻的,因此一般经常与sort合用。
SYNOPSIS:uniq [OPTION]... [INPUT [OUTPUT]]
常用选项:
-i:忽略大小写字符的不同;
-c:进行计数;
-u:只显示唯一的行;
E.g:
# sort helloword |uniq
Gee
Hello Word
# sort helloword |uniq -c
1
2 Gee
2 Hello Word
# sort helloword |uniq -d
Gee
Hello Word
# sort helloword |uniq -u
Blank lines #空白行
5、wc
#用于统计文件里有多少个单词,多少行,多少字符
SYNOPSIS:wc [OPTION]... [FILE]...
常用选项:
-l:统计行数
-w:统计单词数
-c:统计字符数
E.g:
# wc /etc/passwd
44 #行 88 #单词 2323 #字符 /etc/passwd
# wc /etc/passwd -lw
44 88 /etc/passwd
6、tee
#读取标准输入的数据,将其内容输出到标准输出设备,同时保存成文件
SYNOPSIS:tee [OPTION]... [FILE]...
常用选项:
-a或--append:追加文件而非覆盖
E.g:
# free -m|tee /memory
total used free shared buff/cache available
Mem: 977 353 96 13 528 376
Swap: 2047 0 2047
# free -m|tee -a memory |cat memory
total used free shared buff/cache available
Mem: 977 353 96 13 528 376
Swap: 2047 0 2047
total used free shared buff/cache available
Mem: 977 353 96 13 528 376
Swap: 2047 0 2047
7、paste
#paste指令会把每个文件以列对列的方式,一列列合并
常用选项:
-s或--serial:让每个文件以单行显示,而不是以单列显示。
-d或--delimiters:指定间隔符,用指定的间隔符取代默认的跳格字符;
E.g:
# cat a b c
a1
a2
a3
b1
b2
c1
c3
# paste a b c
a1 b1 c1
a2 b2 c3
a3
# paste a b c -s
a1 a2 a3
b1 b2
c1 c3
# paste a b c -s -d:
a1:a2:a3
b1:b2
c1:c3
本文出自 “Linux运维” 博客,请务必保留此出处http://allenyang.blog.51cto.com/10991027/1787996
标签:linux文本处理基础命令 1、sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste
原文地址:http://allenyang.blog.51cto.com/10991027/1787996