1. grep程序

Linux下文本处理三剑客-----grep sed awk

sed:文本行编辑器(流编辑器)

       awk:报告生成器(文本输出格式化)

        grep:文本行过滤工具  每一行进行过滤

               pattern一般通过通配符和正则表达式两种方式进行匹配

包含三个命令:grep egrep fgrep,它们是用来进行 行模式(pattern)匹配的

Egrep = grep -E //使用扩展的正则表达式

Fgrep = fast grep //只使用文件通配符进行匹配 快速文件匹配 不调用正则表达式引擎

grep的用法:

         grep [option] … PATTERN [filename]

A*  以A开头的任意文件 *---代表任意字符

*grep默认使用正则表达式进行文本匹配*

grep常见选项:

-E 支持使用扩展的正则表达式(ERE)regexp

-P 使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed、grep、awk使用的正则表达式引擎也不相同)

-i 忽略大小写

-v 进行反选

-o 仅仅输出匹配的内容(默认输出的是匹配到的行)

--color=auto 语法着色

-n 显示行号

-w 匹配固定的单词

  1. 正则表达式----正则表达式PATTERN

作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身的含义,就需要进行转义(\)

回顾文件通配符:* ? [] [^ ]

a)       字符匹配

. 代表任意一个字符==?

[] 范围内的任意一个字符

[^ ] 范围外的任意一个字符

字符类:[:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]

b)       次数匹配

* 匹配前面相邻的一个字符0次到n次 n—无数次

\? 匹配前面相邻的一个字符0次到1次

\+ 匹配前面相邻的一个字符1次到n次

\{m\} 匹配前面相邻的一个字符m次

\{m,n\} 匹配前面相邻的一个字符m到n次

\{0,n\} 匹配前面相邻的一个字符0次到n次

\{m,\}  匹配前面相邻的一个字符至少m次

c)       位置锚定

^ 锚定行首

$ 锚定行尾

\b 锚定单词词首和锚定词尾

\> 锚定词尾

\< 锚定词尾

<\root\> --- 匹配root这个单词

d)       分组

abc*----c出现0-n次

abc看作整体,就要分组

\(\) 实例:\(abc\)* abcabcabc…

**分组特性:默认情况下,linux系统会为分组指定变量,变量的表示形式\1 \2 \3…..

             

1.grep -i “^s” /pro

2.grep -v “/b$” /e

3.sort -n -t: -k3 /etc/passwd | tail -1 | cut -d: -f1

4.alias grep =”grep “^root\>”  --color=auto”

grep “^root\>” /etc/passwd | cut -d: -f7

grep “^root\>” /etc/passwd &> /dev/null && grep “^root\>” /etc/passwd &> /dev/null | cut -d: -f7

id root &> /dev/null && grep “^root\>” /etc/passwd &> /dev/null | cut -d: -f7

5.grep “[0-9]\{2,3\}” /etc/passwd

grep -w “[0-9]\{2,3\}\>” /etc/passwd

grep “\<[0-9]\{2,3\}\>”  /etc/passwd

/etc/rc.d/rc.sysinit-------centos7没有文件

6. grep “^[[:space:]]\+ .*[^[:space:]]$” /etc/rc.d/rc.sysinit

7.netstat -tan  ----- -t tcp -n

netstat -tan | grep “LISTEN[[:space:]]*$”

8.

-s指定用户使用的

grep “^\(bash\)\b.*\1$” /etc/passwd

grep “^\(bash\)\>.*\1$” /etc/passwd

grep “\(^[[:alnum:]]\+\>\).*\1$”  /etc/passwd

9.IP地址:

0-255.0-255.0-255.0-255

0-255

2 0-4 0-9  2[0-4][0-9]

2 5 0-5   25[0-5]

1 0-9 0-9  1[0-9][0-9]

0 0-9 0-9  [0-9][0-9]

0 0  0-9  [0-9]

2[0-4][0-9] | 25[0-5] | 1[0-9][0-9] | [0-9][0-9] | [0-9] \. 2[0-4][0-9] | 25[0-5] | 1[0-9][0-9] | [0-9][0-9] | [0-9] \. 2[0-4][0-9] | 25[0-5] | 1[0-9][0-9] | [0-9][0-9] | [0-9] \. 2[0-4][0-9] | 25[0-5] | 1[0-9][0-9] | [0-9][0-9] | [0-9]

Shell-04的更多相关文章

  1. shell编程中用户输入处理(shell 04)

    shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $ ...

  2. Linux Shell 04 数字/字符串/文件测试

    一. 数字测试 格式:n1  -op  n2 测试操作op: eq/ne/le/ge/lt/gt    -->    等于/不等于/小于等于/大于等于/小于/大于 1. 数字比较可以使用特殊的( ...

  3. Shell 04 字符串处理、正则表达式

    一.字符串的处理   1.字符串截取 1.1 s{}表达式  ${变量名:起始位置:长度} (从0开始) n=number (n="number") echo ${#n}   -- ...

  4. centos6安装部署git服务器(gitlab6.4)

    环境准备 python版本2.6git版本 1.8.4.1ruby版本ruby-2.0.0-p353gitlab-shell版本 v1.8.0gitlab版本6.4.3 因centos6系列的pyth ...

  5. python练习六十二:文件处理,往文件中所有添加指定的前缀

    往文件中所有添加指定的前缀 方法一:open方法 f_r = open('text.txt') f_w = open('text_new.txt','w+') i = 0 while True: i ...

  6. 【Linux】一步一步学Linux——初识Linux命令解析器(10)

    目录 00. 目录 01. Shell简介 02. Shell分类 03. 交互式shell和非交互式shell 04. 登录shell和非登录shell 05. Shell类型 06. 参考 00. ...

  7. ubuntu16.04 安装power shell

    ubuntu16.04 安装power shell # Download the Microsoft repository GPG keys wget -q https://packages.micr ...

  8. Ubuntu 16.04下在Shell终端下使用nautilus快速打开窗口文件夹

    Ubunut 16.04默认使用nautilus进行管理资源文件夹,nautilus默认是支持参数传递的. 使用: nautilus /dirurl 打开当前文件夹(可以使用$PWD代替): naut ...

  9. ubuntu12.04中shell脚本无法使用source的原因及解决方法

    现象: shell脚本中source aaa.sh时提示 source: not found 原因: ls -l `which sh` 提示/bin/sh -> dash 这说明是用dash来进 ...

  10. Ubuntu 14.04 在桌面上双击运行shell 脚本文件

    http://askubuntu.com/questions/465531/how-to-make-a-shell-file-execute-by-double-click up vote7down ...

随机推荐

  1. Spring MVC的RequestContextHolder使用误区

    JShop简介:jshop是一套使用Java语言开发的B2C网店系统,致力于为个人和中小企业提供免费.好用的网店系统. 项目主页:http://git.oschina.net/dinguangx/js ...

  2. 第十四周总结&实验报告八

    实验八 实现一个简单的记事本操作,有菜单项的 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impo ...

  3. 实验报告5&第七周课程总结

    实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. ...

  4. 剑指Offer编程题(Java实现)——删除链表中重复的结点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  5. SSM框架之AOP、动态代理、事务处理相关随笔

    AOP: 原理:底层利用动态代理(两种动态代理技术都使用了) 两种实现方案: 第一种:JDK动态代理技术 实现的InvocationHandler接口,要想实现某个类的动态代理对象,必须有接口有实现类 ...

  6. nginx知识问答

    1.请解释一下什么是Nginx? 答:Nginx是一个web服务器和反向代理服务器,用于HTTP.HTTPS.SMTP.POP3和IMAP协议.2.请列举Nginx的一些特性? 答:Nginx服务器的 ...

  7. Spring如何读取xml配置文件的

    我们通过一个小案例来看xml解析过程. 1. 导包 <dependencies> <!-- xml解析工具 --> <dependency> <groupId ...

  8. 隐藏系统和 Apache 的版本信息

    方法一: ※首先修改源文件,再进行 make && make install 编译安装 编辑源文件/usr/local/apache2/include/ap_release.h 文件 ...

  9. Ubuntu 16.04安装N卡驱动、cuda、cudnn和tensorflow GPU版

    安装驱动 最开始在英伟达官网下载了官方驱动,安装之后无法登录系统,在登录界面反复循环,用cuda里的驱动也出现了同样的问题.最后解决办法是把驱动卸载之后,通过命令行在线安装驱动. 卸载驱动: sudo ...

  10. ise和quartus共用仿真软件

    modelsim仿真ISE工程时出现# ** Error: (vlog-19) Failed to access library 'rtl_work' at "rtl_work" ...