1、Linux文本处理基础命令
Liunx文本处理基础命令是运维工程师不可绕过,必须熟悉掌握的关键命令。
更新至: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 :排序后结果输出文件(如果要直接修改本文件,要用-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-489:8938:3872:721000:10001001:0#cat passwd|cut -d: -f3-4 --complementpostfix:x::/var/spool/postfix:/sbin/nologinntp:x::/etc/ntp:/sbin/nologintcpdump:x::/:/sbin/nologinsimpletime:x:SimpleTime:/home/simpletime:/bin/bashallen:x::/home/allen:/bin/bash# cat passwd|cut -c2-ostfix:x:89:89::/var/spool/postfix:/sbin/nologintp:x:38:38::/etc/ntp:/sbin/nologincpdump:x:72:72::/:/sbin/nologinimpletime:x:1000:1000:SimpleTime:/home/simpletime:/bin/bashllen:x:1001:0::/home/allen:/bin/bash
4、uniq
#uniq可以用来去除排序过程中文件的重复行并统计重复行次数,但重复行必须是相邻的,因此一般经常与sort合用。
SYNOPSIS:uniq [OPTION]... [INPUT [OUTPUT]]
常用选项:
-i:忽略大小写字符的不同;
-c:进行计数;
-u:只显示唯一的行;
E.g:
# sort helloword |uniqGeeHello Word# sort helloword |uniq -c1 2 Gee2 Hello Word# sort helloword |uniq -dGeeHello Word# sort helloword |uniq -uBlank lines #空白行
5、wc
#用于统计文件里有多少个单词,多少行,多少字符
SYNOPSIS:wc [OPTION]... [FILE]...
常用选项:
-l:统计行数
-w:统计单词数
-c:统计字符数
E.g:
# wc /etc/passwd44 #行 88 #单词 2323 #字符 /etc/passwd# wc /etc/passwd -lw44 88 /etc/passwd
6、tee
#读取标准输入的数据,将其内容输出到标准输出设备,同时保存成文件
SYNOPSIS:tee [OPTION]... [FILE]...
常用选项:
-a或--append:追加文件而非覆盖
E.g:
# free -m|tee /memory total used free shared buff/cache availableMem: 977 353 96 13 528 376Swap: 2047 0 2047# free -m|tee -a memory |cat memory total used free shared buff/cache availableMem: 977 353 96 13 528 376Swap: 2047 0 2047 total used free shared buff/cache availableMem: 977 353 96 13 528 376Swap: 2047 0 2047
7、paste
#paste指令会把每个文件以列对列的方式,一列列合并
常用选项:
-s或--serial:让每个文件以单行显示,而不是以单列显示。
-d或--delimiters:指定间隔符,用指定的间隔符取代默认的跳格字符;
E.g:
# cat a b ca1a2a3b1b2c1c3# paste a b c a1 b1 c1a2 b2 c3a3# paste a b c -sa1 a2 a3b1 b2c1 c3# paste a b c -s -d:a1:a2:a3b1:b2c1:c3
本文出自 “心有猛虎,细嗅蔷薇” 博客,请务必保留此出处http://allenyang.blog.51cto.com/10991027/1787996