2018-02-05 文本处理工具

1、cat命令

[root@localhost tmp]#cat -E abc     ---显示行尾结束符$
aaa$
abcd$
$
dc$
asd       $
vsd sf$
$
$
[root@localhost tmp]#cat -A abc     ---显示所有控制符,等价于-vET,-T将TAB字符显示为^I
aaa$
abcd$
$
dc$
asd^I^I  $
vsd sf$
$
$
[root@localhost tmp]#cat -n abc     ---显示行号
     1  aaa
     2  abcd
     3  
     4  dc
     5  asd       
     6  vsd sf
     7  
     8  
[root@localhost tmp]#cat -s abc     ---压缩连续的空行成一行
aaa
abcd

dc
asd       
vsd sf

2、tac命令

[root@localhost tmp]#cat bbb
111
222
333
444

[root@localhost tmp]#tac bbb

444
333
222
111

3、rev命令

[root@localhost tmp]#echo abcde | rev
edcba

4、head和tail

显示文本前或后行内容

  • head
    head [OPTION]... [FILE]...
    -c #: 指定获取前#字节
    -n #: 指定获取前#行
    -#:指定行数
  • tail
    tail [OPTION]... [FILE]...
    -c #: 指定获取后#字节
    -n #: 指定获取后#行
    -#:
    -f: 跟踪显示文件新追加的内容,常用日志监控
[root@centos6 app]#ifconfig eth2 |head -2|tail -1
          inet addr:192.168.25.142  Bcast:192.168.25.255  Mask:255.255.255.0

5、cut命令

cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS: 1-3,7
-c按字符切割
--output-delimiter=STRING指定输出分隔符

[root@localhost ~]#df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       18208184 2573348  14703252  15% /
tmpfs             502068       0    502068   0% /dev/shm
/dev/sda1         289293   34665    239268  13% /boot
[root@localhost ~]#df | tr -s " " | cut -d " " -f1-3,5    ---先把连续的空格压缩成一个,然后以空格作为分隔符进行切割
Filesystem 1K-blocks Used Use%
/dev/sda2 18208184 2573348 15%
tmpfs 502068 0 0%
/dev/sda1 289293 34665 13%

6、paste命令

paste 合并两个文件同行号的列到一行
paste [OPTION]... [FILE]...
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示

[root@localhost tmp]#cat aa
aa ee ff dd
bb  cc  rr  kk
ll pp kk ii
[root@localhost tmp]#cat bb
AA BB CC
EE FF GG
KK II JJ
[root@localhost tmp]#paste aa bb
aa ee ff dd AA BB CC
bb  cc  rr  kk  EE FF GG
ll pp kk ii KK II JJ
[root@localhost tmp]#cat aa bb
aa ee ff dd
bb  cc  rr  kk
ll pp kk ii
AA BB CC
EE FF GG
KK II JJ
[root@localhost tmp]#paste -s aa bb
aa ee ff dd bb  cc  rr  kk  ll pp kk ii
AA BB CC    EE FF GG    KK II JJ

7、wc命令

-l来只计数行数
-w来只计数单词总数
-c来只计数字节总数
-m来只计数字符总数

[root@localhost tmp]#cat /etc/passwd | wc -l
34
[root@localhost tmp]#cat /etc/passwd | wc -c
1541
[root@localhost tmp]#cat /etc/passwd | wc -w
48
[root@localhost tmp]#cat /etc/passwd | wc -m
1541

8、sort 命令

  • -r执行反方向(由上至下)整理
  • -n执行按数字大小整理
  • -f选项忽略(fold)字符串中的字符大小写
  • -u选项(独特,unique)删除输出中的重复行
  • -t c选项使用c做为字段界定符
  • -k X选项按照使用c字符分隔的X列来整理能够使用多次
    sort -t: -k3,5 -nr /etc/passwd ---表示这个文件中的第三列和第五列反方向排序
[root@localhost tmp]#cat cc
aa
vv
dd
p
ii
e
ww
aa
vv
ff
ii
d
e
w
ll
k
[root@localhost tmp]#sort -u cc
aa
d
dd
e
ff
ii
k
ll
p
vv
w
ww
[root@localhost tmp]#sort cc
aa
aa
d
dd
e
e
ff
ii
ii
k
ll
p
vv
vv
w
ww
[root@localhost tmp]#sort -r cc
ww
w
vv
vv
p
ll
k
ii
ii
ff
e
e
dd
d
aa
aa
[root@localhost tmp]#sort -ur cc
ww
w
vv
p
ll
k
ii
ff
e
dd
d
aa

9、uniq命令

从输入中删除前后相接的重复的行
uniq[OPTION]... [FILE]...
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
连续且完全相同方为重复

你可能感兴趣的:(2018-02-05 文本处理工具)