grep cut wc命令详解

1、grep命令

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本

grep命令的用法很多,这里就说几个常用的

grep "your_search_content"  your_search_file  -[options] 

grep "your_search_content"  *    #只搜索当前目录所有文件里的内容,不含子目录里的内容
grep "your_search_content"  *  -r  #搜索当前目录和子目录所有文件
grep "your_search_content"  .  -r  #和上个命令类似 
grep "your_search_content"  *Tes #搜索包含Tes的文件
需要注意的- r表示在当前目录及其子目录下搜索 ,当options里有r时your_search_file可以为.表示前目录,*则表示当前文件夹里所有内容,不包含子目录

[options]主要参数:
-c:只输出匹配行的计数。
-i:
不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-L:查询多文件时只输出不包含匹配字符的文件名。
-n:
显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行,
反向选择
-r:搜索当前目录及其子目录
-w:完全匹配,即匹配整个单词
-A?:查找某些字符的内容,并下延伸多少行
-B?:查找某些字符的内容,并上延伸多少行
-C?:查找某些字符的内容,并上和向下各延伸多少行 
-?:
和-C类似上下各延伸多少行

注:?代表某个具体数字,这几行后面的数字直接影响延伸数量,并以--符号分割搜索行的结果,参数可以结合使用

grep "jason"  test.txt -A1 #在test.txt 中查询jason并下延一行
grep "jason"  test.txt-iA1#在test.txt 中查询jason不区分大小写并下延一行,等价于grep "jason"  test.txt-A1 -i
grep "jason"  . -rin #在当前目录及其子目录中查询jason不区分大小写,显示文本行号

在这就不一一举例了,-A后接数字后,不能再接其他参数会否则出错如

grep "jason" test.txt -A1i  #提示“grep: Invalid argument”

“your_search_content”可以是字符串,也可以是正则表达式,正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
正则表达式和option一配合,grep命令就强大的不要不要的了,在这就不一一举例,自己平时用到就会知道了,下面说说两个简单实用的命令。

2、cut命令

cut:从一个文本文件或者文本流中提取文本列,有以下三种用法

usage: cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-s] [-d delim] [file ...]

cut -d '分隔字符' -f fields:-d指出特定分隔字符,-f 取出-d分隔的第几段

echo $PATH | cut -f 1 -d ':'#把path的值按:分隔,取出分隔的第一段
可以理解为java中split分隔字符串,返回数组 -f就是取数组中的某个值,只不过下标是1开始的,其中-f除了指定某个数字以外,还支持以下写法

echo $PATH | cut -f 1,3 -d ':'#把path的值按:分隔,取出分隔的第一个和第三个
echo $PATH | cut -f 1-3 -d ':'#把path的值按:分隔,取出分隔的第一个到第三个
echo $PATH | cut -f 2- -d ':'#把path的值按:分隔,取出分隔的第二个到最后一个
echo $PATH | cut -f 1-3,5 -d ':'#把path的值按:分隔,取出第一到第三个和第五个

cut -c list [file ...]:执行截取字符串操作,list支持的写法和-f一样,就不再多举例了

ls -l | cut -c 1,3 #截取流中每行的第一个和第三个
$ ls -l | cut -c 1,3
tt
dw

cut -b list [-n] [file ...]:只显示文件中1-10位置的字节,英文环境中和-c选项一样,但国际语言环境中有区别(如中文,字节和字符含义不同)

3、wc命令

统计文件里面有多少单词,多少行,多少字符

usage: wc [-clmw] [file ...]

-l  :仅列出行
-w  :统计词数
-m  :统计字符数
-c  :  统计字节数 英文环境和-m一样

$ wc /etc/passwd 
 91     249    5581 /etc/passwd
分别对应是行数,单词数,字节数
可以看出wc 默认是-lwc, wc的命令比较简单使用就上面四个可选参数,具体可以根据你的需求添加,后面有时间再继续整理下其它常用命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值