linux shell文本处理工具讲解及实战(上)

讲师-胡帅

1.tr命令

替换命令

[root@chances126 gaoyx]# echo "123dfo" |tr 'a-z' 'A-Z'
123DFO
[root@chances126 gaoyx]# 

新建一个文件写入值

[root@chances126 gaoyx]# cat >> file
123
11111
444
dssa
frefs
Ctrl+D保存 file

加 参数 【d】实现删除
exp:

[root@chances126 gaoyx]# cat file
123
11111
444
dssa
frefs
[root@chances126 gaoyx]# 
[root@chances126 gaoyx]# tr -d  '1' < file
23

444
dssa
frefs
[root@chances126 gaoyx]# 

2.cut命令

想看一个文件每行的前n位,用【-c】参数

[root@chances126 gaoyx]# cat file 
123
11111
444
dssa
frefs
[root@chances126 gaoyx]# cat file |cut -c 1
1
1
4
d
f
[root@chances126 gaoyx]# cat file |cut -c 2
2
1
4
s
r
[root@chances126 gaoyx]# cat file |cut -c 1-2
12
11
44
ds
fr
[root@chances126 gaoyx]# 

按照分隔符切割,用【-d,-f】 参数,-d代表分隔符,-f代表 第几列

[root@chances126 gaoyx]# 
[root@chances126 gaoyx]# cat file 
123 ewr
111 ewq
444 wer
dssa 4333
frefs 213
[root@chances126 gaoyx]# cat file |cut -d' ' -f2
ewr
ewq
wer
4333
213
[root@chances126 gaoyx]# 

取ip

[root@chances126 gaoyx]# ifconfig  em1 |head -2
em1       Link encap:Ethernet  HWaddr 90:B1:1C:19:B6:EA  
          inet addr:192.168.220.126  Bcast:192.168.220.255  Mask:255.255.255.0
[root@chances126 gaoyx]# ifconfig  em1 |head -2 |tail -1
          inet addr:192.168.220.126  Bcast:192.168.220.255  Mask:255.255.255.0
[root@chances126 gaoyx]# ifconfig  em1 |head -2 |tail -1|cut -d:  -f2
192.168.220.126  Bcast
[root@chances126 gaoyx]# ifconfig  em1 |head -2 |tail -1|cut -d:  -f2 |cut -d' ' -f1
192.168.220.126
[root@chances126 gaoyx]# my_ip=`ifconfig  em1 |head -2 |tail -1|cut -d:  -f2 |cut -d' ' -f1`
[root@chances126 gaoyx]# echo $my_ip
192.168.220.126

3.sort命令(排序)

参数【r】倒序排;【n】按照数字大小排序
exp:

[root@chances126 gaoyx]# 
[root@chances126 gaoyx]# 
[root@chances126 gaoyx]# cat 123|sort
12
15
2
23
33
45
45
7
[root@chances126 gaoyx]# cat 123|sort -r
7
45
45
33
23
2
15
12
[root@chances126 gaoyx]# cat 123|sort -n
2
7
12
15
23
33
45
45
[root@chances126 gaoyx]# cat 123|sort -nr
45
45
33
23
15
12
7
2
[root@chances126 gaoyx]#

sort和uniq联合使用,uniq是去重复,但是去重复之前必须是排序好的,所以要使用 sort .

uniq参数解释,什么都不加代表去重,【-d】只保留重复的行,【-c】显示重复的多少次

[root@chances126 gaoyx]# cat 123
12
23
45
2
33
7
45
15
14
14
12
23
33
[root@chances126 gaoyx]# cat 123 |sort|uniq
12
14
15
2
23
33
45
7
You have mail in /var/spool/mail/root
[root@chances126 gaoyx]# cat 123 |sort|uniq -d
12
14
23
33
45
[root@chances126 gaoyx]# cat 123 |sort|uniq -c
      2 12
      2 14
      1 15
      1 2
      2 23
      2 33
      2 45
      1 7
[root@chances126 gaoyx]# 

分析日志:

[root@chances126 gaoyx]# cat access_log-20170115|cut -d' ' -f1|sort|uniq -c
      1 192.168.220.151
    340 192.168.220.173
    258 192.168.220.174
      2 192.168.220.202
     10 192.168.220.30
[root@chances126 gaoyx]# 

4.wc命令(统计)

1)【-l】统计有多少行

[root@chances126 gaoyx]# cat access_log-20170115|wc -l
611
You have mail in /var/spool/mail/root
[root@chances126 gaoyx]# 

5.echo命令(加颜色)

为了酷炫,哈哈。

linux shell文本处理工具讲解及实战(上)_第1张图片
效果.png
[root@chances126 gaoyx]# echo  -e '\033[31m123\033[0m'
123
说明:只替换123,其他的是格式,31代表红色,32代表绿色

6.sed(替换)

格式 : sed 's///g' ,s代表替换,g代表全局,/// 可以用#或者@来代替。前两个//之间写要替换的字,后面两个//之间写需要替换为什么。并且前2个//之间可以写正则表达式,如果有.的话,需要前面加\转义一下,后面2个//之间不可以写正则。

[root@chances126 gaoyx]# 
[root@chances126 gaoyx]# cat 123
12
23
45
2
33
7
45
15
14
14
12
23
33
[root@chances126 gaoyx]# cat 123|sed 's/12/aa/g'
aa
23
45
2
33
7
45
15
14
14
aa
23
33
[root@chances126 gaoyx]# 

这样做文件其实没有被修改,只是打印在了屏幕上,如果真要修改一个文件的话,就加参数 -i ,这样真的把一个文件修改了。

7.awk,格式化显示

格式: cat /etc/passwd|awk -F':' '{print $1}' ,-F 是分隔符,$代表第几行,两个$$之间可以用“”连接任何字符。

[root@chances126 logs]# cat /etc/passwd|awk -F':'  '{print $1"======="$7}'
root=======/bin/bash
bin=======/sbin/nologin
daemon=======/sbin/nologin
adm=======/sbin/nologin
lp=======/sbin/nologin
sync=======/bin/sync
shutdown=======/sbin/shutdown
halt=======/sbin/halt
mail=======/sbin/nologin

还可以取出IP,awk可以写多个分割符号,用[]包起来,如下面的例子,+代表多个符号被视作一个符号

[root@chances126 logs]# 
[root@chances126 logs]# ifconfig  em1 |grep 'inet addr'|awk -F'[: ]+' '{print $4}'
192.168.220.126
You have mail in /var/spool/mail/root
[root@chances126 logs]# 
[root@chances126 logs]# 

这一部分听完了,老师真不错呢,东北大哥,竟然才知道他是个学生,佩服佩服,哈哈,说话好搞笑啊。以后检查听课,多逛专业学习网站,坚持打卡,加油!

你可能感兴趣的:(linux shell文本处理工具讲解及实战(上))