龙空技术网

Linux: 用了怎麼久Grep命令,這些可能你還不知道?

流年似水timewentby 411

前言:

现在你们对“php忽略大小写”可能比较着重,兄弟们都想要知道一些“php忽略大小写”的相关知识。那么小编在网上汇集了一些有关“php忽略大小写””的相关资讯,希望咱们能喜欢,兄弟们快快来了解一下吧!

Linux: 用了怎麼久Grep命令,這些可能你還不知道?

介绍

grep用来检索(查找)给定文件中配置PATTERN的值,默认打印PATTERN匹配的行。另外,使用egrep和fgrep也是可以的。它们两个是grep的变体。同时的grep提供了选项可以替代egrep和fgrep。分别是 grep -E 等同于egrep。 grep -F

等同于fgrep。egrep和fgrep目前已经过时了,但是为了兼容历史程序egrep和fgrep目前还可以使用。

语法格式:

grep 'word' filenamegrep 'word' file1 file2 file3grep 'string1 string2' filenamecat otherfile | grep 'something'command | grep 'something'command option1 | grep 'data'
命令选项:
-V 打印版本信息指定解释器-E 使用扩展正则表达式, 相当于egrep命令-F 相当于fgrep命令-G使用基础正则表达式(默认)-P 使用Perl正则表达式搜索-i 忽略大小写匹配-r 递归搜索目录下所有文件,不包括链接文件, 相当于 -d recurse -R 递归搜索目录下所有文件,包括链接文件-v 翻转匹配,选中未匹配的行-n 打印行号-l仅打印匹配行的文件名-L 仅打印未匹配行的文件名-c 显示每个文件中匹配的行数-h 不显示文件名-w匹配整个单词,例如 grep 'hello' file.txt ,可以匹配 hellool、hello、 sayhellob等,如果使用grep -w 只会匹配hello单词。其他不会匹配。

Linux: 用了怎麼久Grep命令,這些可能你還不知道?

案例:

再开始写案例之前,我们做好数据准备。假设我们有一个greptest.txt和其备份文件greptest.txt.bak,文件内容如下:

[root@dongjing grep]# lltotal 8-rw-r--r-- 1 root root 95 Sep 17 17:47 greptest.txt-rw-r--r-- 1 root root 95 Sep 17 18:00 greptest.txt.bak[root@dongjing grep]# cat greptest.txtTom,Scala,30Tom,Scala,30Tom,Java,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66[root@dongjing grep]# cat greptest.txt.bakTom,Scala,30Tom,Scala,30Tom,Java,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66
a. 找出greptest.txt中包含Java所有行,并显示行号(Java不区分大小写,)
[root@dongjing grep]# grep -in "Java" greptest.txt3:Tom,Java,30[root@dongjing grep]# grep -in Java greptest.txt3:Tom,Java,30[root@dongjing grep]# awk -F "," 'BEGIN{IGNORECASE=1} /Java/ {print NR,$0}' greptest.txt3 Tom,Java,30[root@dongjing grep]# sed = greptest.txt | sed 'N;s/\n/ /'| sed -n '/Java/Ip'3 Tom,Java,30[root@dongjing grep]# cat -n greptest.txt | grep -i java 3 Tom,Java,30
b. 找出greptest.txt中不包含Java的所有行(Java不区分大小写)
[root@dongjing grep]# grep -v Java greptest.txtTom,Scala,30Tom,Scala,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66[root@dongjing grep]# grep -v "Java" greptest.txtTom,Scala,30Tom,Scala,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66[root@dongjing grep]# awk -F ',' '!/Java/{print}' greptest.txtTom,Scala,30Tom,Scala,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66[root@dongjing grep]# awk -F ',' '/Java/{next;} {print} ' greptest.txtTom,Scala,30Tom,Scala,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66[root@dongjing grep]# sed -n '/Java/!p' greptest.txtTom,Scala,30Tom,Scala,30aJack,Python,95bJack,Python,95 XY,C,90Jack,PHP,66
c. 统计greptest.txt中包含Java的一共有多少行
[root@dongjing grep]# grep -c Java greptest.txt1[root@dongjing grep]# grep -c "Java" greptest.txt1# 其他的答案在a题的基础上使用wc -l 就可以计算出结果。
d. 找到当前目录下所有包含Python的文件名称
[root@dongjing grep]# grep -rl Python ../greptest.txt./greptest.txt.bak[root@dongjing grep]# grep -rl "Python" ../greptest.txt./greptest.txt.bak[root@dongjing grep]# find . -type f |xargs awk '/Python/{print FILENAME}' | sort -u./greptest.txt./greptest.txt.bak

Linux: 用了怎麼久Grep命令,這些可能你還不知道?

e. 找出当前文件夹下包含Java或者Python单词的行的总数

[root@dongjing grep]# grep -rwc "Java\|Python" . | awk -F : 'BEGIN{sum=0}{sum += $2} END {print "Python,Java sum = "sum}'Python,Java sum = 6

f. 找出greptest.txt中Python单词出现的个数

[root@dongjing grep]# grep -wc Python greptest.txt2

如果大家有什麼問題,可以留言。如果文章能幫助到你,請大家關注、點讚是對我繼續寫下去的動力! 謝謝!

标签: #php忽略大小写