文本查看以及处理工具

2019-04-02  本文已影响0人  SRE1

wc:word count

格式:wc [OPTION]... [FILE]...

[root@centos7 ~]# wc /etc/fstab
 12  60 595 /etc/fstab
12行 60个单词 595个字节

-l: lines

[root@centos7 ~]# wc -l /etc/fstab
12 /etc/fstab

-w:words

[root@centos7 ~]# wc -w /etc/fstab
60 /etc/fstab

-c: bytes

[root@centos7 ~]# wc -c /etc/fstab
595 /etc/fstab          

cut:

格式:cut OPTION... [FILE]...

-d CHAR:以指定的字符为分隔符

[root@centos7 ~]# cut -d: -f1,7 /etc/shadow
root:
bin:
daemon:
adm:
lp:
sync:
shutdown:

-f FIELDS:挑选出的字段

字符名称 含义
# 常指定的单个字段
#-# 连续的多个字段
#,# 离散的多个字段
[root@centos7 ~]# cut -d: -f1,3-5,7 /etc/passwd
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin

练习:取出/etc/rc.d/init.d/functions的行号

[root@centos7 ~]# wc -l /etc/rc.d/init.d/functions 
712 /etc/rc.d/init.d/functions
[root@centos7 ~]# wc -l /etc/rc.d/init.d/functions | cut -d' ' -f1
712

sort:

格式:sort [OPTION]... [FILE]...

[root@node1 ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

-n:基于数值大小而非字符进行排序

[root@node1 ~]# cut -d: -f3 /etc/passwd
5
6
7
8
11
12
14
99
192
81
999
74
89
1000
[root@node1 ~]# cut -d: -f3 /etc/passwd | sort -n
5
6
7
8
11
12
14
74
81
89
99
192
999
1000

-t CHAR:指定分隔符
-k #:用于排序比较的字段

[root@centos6 ~]# sort -t: -k3 -n /etc/passwd
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

-r:逆序排序
-f:忽略字符大小写
-u:重复的行只保留一份
重复行:连续且相同;

 [root@centos6 ~]# cut -d: -f7 /etc/passwd | sort -u
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
[root@centos6 ~]# cut -d: -f7 /etc/passwd | sort -u | wc -l 
5

uniq:报告或移除重复的行

格式:uniq [OPTION]... [INPUT [OUTPUT]]
-c:显示每行的重复次数

[root@node1 ~]# cut -d: -f7 /etc/passwd | sort | uniq -c
  2 /bin/bash
  1 /bin/sync
  1 /sbin/halt
 14 /sbin/nologin
  1 /sbin/shutdown

-u:仅显示未曾重复过的行

[root@node1 ~]# cut -d: -f7 /etc/passwd | sort | uniq -u
/bin/sync
/sbin/halt
/sbin/shutdown

-d:仅显示重复过的的行

[root@node1 ~]# cut -d: -f7 /etc/passwd | sort | uniq -d
/bin/bash
/sbin/nologin

diff:compare files line by line

格式:diff [OPTION]... FILES

[root@centos7 ~]# diff fstab fstab.new
2c2
< #
---
> # comment

diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE
-u:使用unfied机制,即显示要修改的行的上下文,默认为3行

[root@centos7 ~]# diff -u fstab fstab.new
--- fstab   2019-04-03 17:38:50.823506229 +0800
+++ fstab.new   2019-04-03 17:30:49.208821687 +0800
@@ -1,5 +1,5 @@

-#
+# comment
 # /etc/fstab
 # Created by anaconda on Sun Mar 24 14:30:18 2019
 #

patch:向文件打补丁

patch [OPTIONS] -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE
patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE

[root@centos7 ~]# diff fstab fstab.new > fstab.patch
[root@centos7 ~]# patch -i fstab.patch fstab
patching file fstab
[root@centos7 ~]# diff fstab fstab.new 
[root@centos7 ~]# 

-R:还原补丁

[root@centos7 ~]# patch -R -i fstab.patch fstab
patching file fstab

练习:取出ifconfig ens33命令结果中的ip地址;

[root@centos7 ~]# ifconfig ens33 | grep netmask | tr -s ' ' | cut -d ' ' -f3
192.168.0.107
上一篇下一篇

猜你喜欢

热点阅读