Grep

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

格式

grep [options]

参数详解

-A或--after-context= 除了显示符合范本样式的那一列之外,并显示该列之后的内容。

-b或--byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。

-B或--before-context= 除了显示符合范本样式的那一列之外,并显示该列之前的内容。

-c或--count 计算符合范本样式的列数。

-C或--context=或- 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。

-d或--directories= 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e或--regexp= 指定字符串做为查找文件内容的范本样式。

-E或--extended-regexp 将范本样式为延伸的普通表示法来使用。

-F或--fixed-regexp 将范本样式视为固定字符串的列表。

-G或--basic-regexp 将范本样式视为普通的表示法来使用。

-h或--no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。

-H或--with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。

-i或--ignore-case 忽略字符大小写的差别。

-l或--file-with-matches 列出文件内容符合指定的范本样式的文件名称。

-L或--files-without-match 列出文件内容不符合指定的范本样式的文件名称。

-n或--line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。

-q或--quiet或--silent 不显示任何信息。

-r或--recursive 此参数的效果和指定“-d recurse”参数相同。

-s或--no-messages 不显示错误信息。

-v或--revert-match 反转查找。

-V或--version 显示版本信息。

-w或--word-regexp 只显示全字符合的列。

-x或--line-regexp 只显示全列符合的列。

-y 此参数的效果和指定“-i”参数相同。

--help 在线帮助。

pattern正则表达式主要参数:

\: 忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的单个字符。

:有字符,长度可以为0。

4.grep命令使用简单实例

grep ‘test’ d*

显示所有以d开头的文件中包含 test的行。

grep ‘test’ aa bb cc

显示在aa,bb,cc文件中匹配test的行。

grep ‘[a-z]{5}’ aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

grep ‘w(es)t.\1′ aa

如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。

5.grep命令使用复杂实例

假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:

grep magic /usr/src/Linux/Doc/*

sysrq.txt:* How do I enable the magic SysRQ key?

sysrq.txt:* How do I use the magic SysRQ key?

其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:

grep: sound: Is a directory

这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:

明确要求搜索子目录:grep -r

或忽略子目录:grep -d skip

如果有很多 输出时,您可以通过管道将其转到’less’上阅读:

grep magic /usr/src/Linux/Documentation/* | less

这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。

下面还有一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files 即可显示行号信息

grep -c pattern files 即可查找总行数

这里还有些用于搜索的特殊符号:

< 和 > 分别标注单词的开始与结尾。

例如:

grep man * 会匹配 ‘Batman’、’manic’、’man’等,

grep ‘

grep ‘’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。

‘^’:指匹配的字符串在行首,

‘$’:指匹配的字符串在行 尾,

grep

Linux下拷贝:文件指定个数拷贝/文件内容指定行数拷贝

1、复制文件A的前N行数据到文件B中

在命令行直接输入:(将data.txt的前100行复制到sample.txt中)

head -n 100 data.txt > sample.txt

2、复制文件夹A中的N个文件到文件夹B中

查看文件夹下文件数目:

ls -l |grep "^-"|wc -l

复制前10个文件到文件夹example中:

ls |head -n 10|xargs -i cp {} /example

复制后100个文件到文件夹temp中:

ls |tail -n 100|xargs -i cp {} /example

linux复制一行或几行数据到另一个文本

sed -n 'start,end'p test1.txt >> test2.txt

其中start与end分别是开始行与结束行数

LINUX命令行重启或者关机

shutdown -r now 立刻重启

shutdown -r 10 过10分钟自动重启

shutdown -r 20:35 在时间为20:35时候重启

shutdown -c 取消重启

shutdown -h now 立刻关机

shutdown -h 10 10分钟后自动关机

linux reg 指令,LINUX的一些小命令相关推荐

  1. linux 高级指令,Linux高级指令

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Linux高级指令常用的通配符有: "*":匹配任意字符串 "?":匹配任意一个 ...

  2. 什么是linux系统管理指令,Linux必学的系统管理命令

    本文中介绍一些实用又常用的Linux或Unix命令,这些是Linux系统管理员们平常使用的命令.本文不是什么完整列表,而是简要地列出了需要时派得上用场的命令.下面跟着学习啦小编一起来了解一下吧. Li ...

  3. linux attach 指令,以太坊实战-attach命令详解

    在前面的实战教程中我们经常提到attach这个命令,今天就针对此命令做更深一步的介绍. 官方对此参数的解释如下:attach Start an interactive JavaScript envir ...

  4. linux清指令,Linux隐匿和清除的几条命令

    linux菜鸟一枚,声明下这不是原创,只能算是一个收集把,脚下留情-. 有些是从其他地方看到的粘过来的,有的是自己修改了下,如果有不对,请指出,谢谢 各位大大有什么思路也可以分享下.. ******* ...

  5. linux ar指令,Linux ar命令介绍 和常用示例

    制作静态库要用到ar命令,命令格式: ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files... {dmpqrtx}中的 ...

  6. linux minecraft 指令,linux中uptime命令

    uptime命令是用来查询linux系统负载的! 用法:直接输入uptime即可. 另外还有一个参数 -v 是用来查询版本的 [root@ localhost]$ uptime –V procps v ...

  7. linux vsftp 指令,linux下vsftp的常用命令

    查看是否安装了vsftp#rpm -qa |grep vsftpd yum安装vsftp#yum install vsftp -y 启动vsftpd#service vsftpd start 停止vs ...

  8. linux setcap指令,Linux下setcap详解

    为啥要讲setcap这个玩意呢,因为最近在做国产化系统编译安装产品,遇到普通用户下Nginx不能够小于1024一下端口的问题. CAPABILITIES(7) 文档有一段: For the purpo ...

  9. linux数据库能看到系统执行了哪些命令,DB2数据库在linux操作系统的指令有哪些?...

    以下的文章主要描述的是DB2数据库在linux操作系统下的相关指令,你如果对DB2数据库在linux操作系统下的相关指令有兴趣的话你就可以点击以下的文章进行观看了,以下就是文章的详细内容介绍,望大家借 ...

最新文章

  1. 安永创新中心落子北京,聚焦5G技术赋能企业数字化转型
  2. C语言入门练习 - 第三期 数组(题解)
  3. 在SQL Server中将数据导出为XML和Json
  4. c++ STL 容器——序列
  5. C语言bcd码减法过程,bcd码的减法运算规则举例.ppt
  6. linux cpu 个数、核心数、线程数
  7. python爬取学校题库_利用Python网络爬虫爬取学校官网十条标题
  8. python将输出结果写入csv_Python怎么把输出整体写入CSV文件
  9. python 实现省全称和省的简称互相转换
  10. python依赖库是什么_【转】python导出依赖库
  11. 断舍离:通向自由的26个丢弃
  12. java 泰勒级数_使用rSymPy计算泰勒级数
  13. android 微信评论功能,Android仿微信朋友圈点击评论自动定位到相关行功能.pdf
  14. chatgpt简单的问答机器人
  15. 【网络设备】交换机相同VLAN之间互通
  16. 另一个jar包引不了_《嫌疑人X的献身》:一个天才的陨落
  17. python信用卡违约预测分析_Python作业集:信用卡还款违约预测
  18. PSpice 常见问题
  19. 网络营销实战课-好用的工具推荐
  20. 【陌陌】数据分析师四面

热门文章

  1. 傻傻分不清楚?带你了解设备id
  2. linux ubuntu 命令行高亮
  3. BIOS密码的去除与破解
  4. 开放接口API安全性
  5. EdgeTX/OpenTX逻辑开关教程
  6. dod刷服务器文件,编辑修改
  7. 【前端】1.学习了一段时间的vue,总结一下Vue书写规范
  8. 抓包微信下线的操作思路
  9. 华红兵:移动互联网时代,场景理论的四大特征
  10. c语言ascii码字符集共有多少个编码,标准ascii码字符集共有多少个编码