#每日LinuxShell小练习#03 正则表达式

正则表达式(Regular Expression ,RE)是处理字符串的方法,它是以为单位来进行字符串的处理行为,

通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某特定字符串的处理程序。

#!/bin/bash

if [ $# == 0 ];then
    echo "Please input parameters:"
    echo "dmesg OR txt"
fi

if [ "$1" == "dmesg" ];then
    dmesg | grep ‘eth‘
    echo "******************"
    dmesg | grep -A1 -B2 ‘eth‘
    echo "******************"
    dmesg | grep -A1 -B2  -n --color=auto ‘eth‘
fi

if [ "$1" == "txt" ];then
    echo "**********************lines with ‘the‘***********************"
    grep -n --color=auto ‘the‘ ./material/regular_express.txt
    echo "**********************lines without ‘the‘********************"
    grep -v -n --color=auto ‘the‘ ./material/regular_express.txt
    echo "**********************lines with ‘the‘(no matter lower or bigger)********************"
    grep -i -n --color=auto ‘the‘ ./material/regular_express.txt
    echo "**********************lines with ‘t[ae]st‘********************"
    grep -n --color=auto ‘t[ae]st‘ ./material/regular_express.txt
    echo "**********************lines with ‘oo‘********************"
    grep -n --color=auto ‘oo‘ ./material/regular_express.txt
    echo "**********************lines without ‘oo‘starting with g ********************"
    grep -n --color=auto ‘[^g]oo‘ ./material/regular_express.txt
    echo "**********************lines without ‘oo‘starting with a-z ********************"
    grep -n --color=auto ‘[^a-z]oo‘ ./material/regular_express.txt
    echo "**********************lines without ‘oo‘starting with lower ********************"
    grep -n --color=auto ‘[^[:lower:]]oo‘ ./material/regular_express.txt
    echo "**********************lines without digit ********************"
    grep -n --color=auto ‘[^[:digit:]]‘ ./material/regular_express.txt
    echo "**********************lines starting with ‘the‘ ********************"
    grep -n --color=auto ‘^the‘ ./material/regular_express.txt
    echo "**********************lines starting with lower ********************"
    grep -n --color=auto ‘^[a-z]‘ ./material/regular_express.txt
    echo "**********************lines not starting with character ********************"
    grep -n --color=auto ‘^[^a-zA-Z]‘ ./material/regular_express.txt
    echo "**********************lines ending with ‘.‘ ********************"
    grep -n --color=auto ‘\.$‘ ./material/regular_express.txt
    echo "**********************display lines which are not empty and not begining with #  ********************"
    grep -v -n --color=auto ‘^$‘ ./material/regular_express.txt | grep -v -n ‘^#‘
    echo "**********************lines with g..d  ********************"
    grep -n --color=auto ‘g..d‘ ./material/regular_express.txt
    echo "**********************lines with no less than 2 oo (* means 0 or more) ********************"
    grep -n --color=auto ‘ooo*‘ ./material/regular_express.txt
    echo "**********************lines with string which begins with g and ends with g********************"
    grep -n --color=auto ‘g.*g‘ ./material/regular_express.txt
    echo "**********************lines with 2-5 o in go..g ********************"
    grep -n --color=auto ‘go\{2,5\}g‘ ./material/regular_express.txt
    echo "**********************lines with 2 o in go..g ********************"
    grep -n --color=auto ‘go\{2\}g‘ ./material/regular_express.txt
    echo "**********************lines with 2 or more o in go..g ********************"
    grep -n --color=auto ‘go\{2,\}g‘ ./material/regular_express.txt
fi
时间: 2024-10-15 03:16:10

#每日LinuxShell小练习#03 正则表达式的相关文章

#每日LinuxShell小练习#04 find指令

今天对find指令进行练习 原材料来源于http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; 这个是find的基本公式 1.基本形式 find path -option 如果有两个以上的选择,则使用 -o -a -o 是或者的意思 -a 是而且的意思 比如: #!/bin/ba

#每日LinuxShell小练习#02 tr命令的使用

对于文本操作,tr命令的作用很大.今天对tr功能进行初步学习. 1. tr的工作原理 tr命令不接受指定的文件参数,而只是对标准输入进行翻译 tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符 2.简单的替换功能 tr 1 2 < ./material/20150804tr_height.txt tr ' ' '\11' < ./material/20150804tr_height.txt 3.对一系列字符进行处理 tr 'a-z' 'A-

#每日LinuxShell小练习#05 awk-好用的数据处理工具

awk是数据处理工具.相比如sed常作用于一整行的处理,awk则倾向于将一行分为数个“字段”来处理. 因此,awk适合处理小型的数据. awk的基本模式如下: awk '条件类型1{动作1}条件类型2{动作2}' 首先,看一段基本的代码 echo "basis exmaple pf awk" echo "**************************" echo "before awk###############" last -n 5 e

[每日一个小技巧] CentOS 下使用yum安装一类软件包

yum 提供了丰富的工具用于支持软件包的安装. 有时候需要安装不只只是一个的情况下,可以使用groupinstall选项. 首先可以通过grouplist查询对应的group信息,比如需要安装开发工具的情况下, 可以使用以下命令: $ yum groupinstall  "Development Tools" [每日一个小技巧] CentOS 下使用yum安装一类软件包,布布扣,bubuko.com

css通用小笔记03——浏览器窗口变小 div错位的问题

我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代码(html): 1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 2 <head> 3 <title>无标题文档</

小tips:正则表达式中的RegExp.$1

RegExp 是javascript中的一个内置对象.为正则表达式.RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配. 例如: var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正则表达式 匹配出生日期(简单匹配) r.exec('1985-10-15'); s1=RegExp.$1; s2=RegExp.$2;

ES6小实验-复习正则表达式

正则表达式总是记不住,这一次参考网上一篇的文章好好复习一遍 正则表达式构造函数(四种写法): var regex = new RegExp('xyz', 'i') var regex = new RegExp(/xyz/i) var regex = /xyz/i // ES6的写法.ES5在第一个参数是正则时,不允许此时使用第二个参数,会报错. // 返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符. // 下面代码返回”i”. new RegExp(/abc/ig, 'i'

每日一水-----小光棍数

描述:最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入:有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m 输出:输出第m个小光棍数. 输入数据: 1 输出数据: 471 /*************************************************

避免老年痴呆,每日一个小程序(二)

接上篇,今天的小程序:编写程序detab,将输入中的制表符替换成适当数目的空白符(使空白充满到下一制表符停止位).假定制表符停止位的位置是固定的,比如在每个n列的位置上.n应为变量或符号参数吗?--为避免空格与tab显示难以区分,这里使用指定长度的‘*’号填充tab符号. #include <stdio.h> /*将输入的制表符替换为适当数量的‘*’ */ #define N 4 //制表符的停止位 #define MAXLENGTH 1000 //输入行最大长度 int getLine(ch