Java开发人员必须掌握的Linux命令(三)

做一个积极的人

编码、改bug、提升自己

我有一个乐园,面向编程,春暖花开!

学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解知识或者技术,让学习之旅充满乐趣,这就是写博文的初心。

前面写了两篇Linux的命令介绍,

前段时间看了哈利波特的一些电影,突然想到Linux的命令就像哈利波特电影中的魔法一样,都是有魔力的。那么学会Linux的这些命令,我们也就可以像哈利波特他们一样拥有魔法,魔法的世界还是挺有趣的,里面也充满了欢乐。本篇再讲三个Linux的命令,这三个命令是Linux三剑客(grep、sed、awk),也是Linux中三个比较重要的命令,学会了这三个命令,那么我们也用了三个比较厉害的魔法。

旁白开篇

有一个魔法学校里面有三个魔法。这三个魔法一直以来被认为是魔法学校里面比较重要的三个魔法,也被称为三剑客,让我们来开启这三个魔法的学习吧!

魔法地图:

Java开发人员必须掌握的Linux命令(三)

1、文本过滤器-grep

grep命令用于查找文件里符合条件的字符串,是一种强大的文本搜索工具,支持正则表达式或者字符及基本文本字符所编写的过滤条件

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。说简单一点就是 :用户可以指定的“模式”(选项)对目标文本进行匹配检查 , 查看就打印匹配到的行。

注: 在grep命令中输入字符串参数时,最好将其用双引号括起来。调用变量时也可以使用双引号。在调用模式匹配事,应使用单引号。

  • 常用命令格式
# grep 匹配条件 目标文件/目录
可选参数:
-c 或 --count : 计算符合样式的列数。
-i 或 --ignore-case : 忽略字符大小写的差别

-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
-s :不显示不存在或无匹配文本的错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行行
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同
-E 或 --extended-regexp : 将样式为延伸的普通表示法来使用
....
说明:在正则表达式中
^ :匹配字符串开始
$ :匹配字符串结尾
* :字符出现 [0- 任意次 ]
\?:字符出现 [0-1 次 ]
\+:字符出现 [1- 任意次 ]
  • 简单实例
# 1、新建一个busyday busyday1 busyday2文件 
[root@localhost learn_grep]# touch busyday
[root@localhost learn_grep]# vim busyday
# 其他busyday1 busyday2类似,文件内容略
[root@localhost learn_grep]# cat busyday
abc
123abdef
789happy
hjk567
hello123
greptest
# 2、查询 happy 所在的文件
[root@localhost learn_grep]# grep "happy" busyday*

busyday:789happy
busyday1:123happy
busyday2:456happy
# 3、统计 happy 所在的文件内容的出现的次数
[root@localhost learn_grep]# grep -c "happy" busyday*
busyday:1
busyday1:1
busyday2:1
# 4、显示匹配happy的所有行数,都在第三行
[root@localhost learn_grep]# grep -n "happy" busyday*
busyday:3:789happy
busyday1:3:123happy
busyday2:3:456happy
# 5、显示所有不包含happy的行
[root@localhost learn_grep]# grep -v "happy" busyday*
busyday:abc
busyday:123abdef
busyday:hjk567
busyday:hello123
busyday:greptest
busyday:
busyday1:abc
busyday1:4567abdef
busyday1:hjk321
busyday1:hello987
busyday2:abc
busyday2:9876abdef
busyday2:hjk4321
busyday2:hello0980
# 6、精确匹配,找到 123happy
[root@localhost learn_grep]# grep "123happy" busyday*
busyday1:123happy
# 7、正则匹配,找到所有123开头的
[root@localhost learn_grep]# grep -E "^123*" busyday*
busyday:123abdef
busyday1:123happy

还有很多,自行进行魔法练习!

2、字符处理器-sed

sed命令是利用script来处理文本文件。sed可依照script的指令,来处理、编辑文本文件。能够完美的配合正则表达式便用,功物能不同凡响。

  • 基本语法
sed [-参数] '命令' 文本
参数说明:
- -e


分享到:


相關文章: