grep简单用法及脚本基础篇

grep的基本选项说明

  • grep命令 选项说明: --color=auto:对匹配到的?本着?显?; -v:显?不被模式匹配到的?; -i:
    忽略字符??写; -n:显?匹配的?号; -c:统计匹配到的字符串; -o:仅显?匹配到的字符串; -q:静
    默模式,不输出任何信息; -A #:表?显?匹配到的?并显?该?后#?,#表?为数字; -B #:表?显?
    匹配到的?并显?该?前#?,#表?为数字; -C #:表?显?匹配到的?并显?该?前后各#?,#表?为
    数字; -e:实现多个选项的逻辑or或更新; -w:匹配整个单词; -E:使?ERE扩展正则,等效于egrep命
    令; -F:相当于fgrep,不使?正则表达式;

    例题:【例1】查找/etc?录下,所有包含conf字串的?件
    [root@magedu ~]# ls -R /etc|grep conf
    anthy-conf
    asound.conf
    autofs.conf
    autofs_ldap_auth.conf
    ...
    【例2】显?/root/passwd?件中包含root字串所在的?并显??号
    [root@magedu ~]# grep root /root/passwd
    1:root:x:0:0:root:/root:/bin/bash
    11:operator:x:11:0:operator:/root:/sbin/nologin
    【例3】显?passwd?件中,不包含bash字串的?,并显??号
    [root@magedu ~]# grep -n -v bash passwd
    2:bin:x:1:1:bin:/bin:/sbin/nologin
    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4:adm:x:3:4:adm:/var/adm:/sbin/nologin
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    6:sync:x:5:0:sync:/sbin:/bin/sync
    ...
    【例4】显?passwd?件中,包含root字串的?的总?数
    [root@magedu ~]# grep -c root passwd
    2
    【例5】仅显?/root/passwd?件中的root字串及所在的?号
    [root@magedu ~]# grep -on root passwd
    1:root
    1:root
    1:root
    11:root
    【例6】显?/root/passwd?件中,包含root字串的?和其下2?的内容
    [root@magedu ~]# grep -A 2 root passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    【例7】显?/root/passwd?件中,包含root字串的?和其上2?的内容
    [root@magedu ~]# grep -B 2 root passwd
    root:x:0:0:root:/root:/bin/bash

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin

    脚本变量之位置变量

    shift用法:shift功能是可以更换参数位置
    位置参数的值总结位置参数 含义
    $0 当前这个Shell程序的文件名
    $# 传递给程序的总的参数数目
    $? 上一个代码或者Shell程序在Shell中退出的情况,如果正常退出则返回0,否则返回非0值
    $* 传递给程序的所有参数组成的字符串
    $n 表示第n个参数(n<10)
    $@ 以“参数1”、“参数2”……保存所有的参数
    $$ 本程序的(进程ID)PID
    $! 上一个命令的PID
    ${n} 表示第n个参数(n>9)

    常用整数比较操作符函数 说明(例子)
    -eq 等于,if [ "$a" -eq "$b" ]
    -ne 不等于,if [ "$a" -ne "$b" ]
    -gt 大于,if [ "$a" -gt "$b" ]
    -ge 大于等于,if [ "$a" -ge "$b" ]
    -lt 小于,if [ "$a" -lt "$b" ]
    -le 小于等于,if [ "$a" -le "$b" ]
    < 小于(在双括号内使用),(("$a"<"$b"))
    <= 小于等于(在双括号内使用),(("$a"<="$b"))

    大于(在双括号内使用),(("$a">"$b"))
    = 大于等于(在双括号内使用),(("$a">="$b"))

    常用字符串比较操作符函数 说明(例子)
    = 等于,if [ "$a"="$b" ]
    == 等于,if [ "$a"=="$b" ],在[[ ]]结构里使用匹配模式
    != 不等于,if [ "$a"!="$b" ],在[[ ]]结构里使用匹配模式
    < 小于,if [[ "$a"<"$b" ]],if [ "$a"\<"$b" ](在[]结构里<需要转义)

    大于,if [[ "$a">"$b" ]],if [ "$a"\>"$b" ](在[]结构里>需要转义)
    -z 字符串为“null”,长度为0
    -n 字符串不为“null”,长度不为0

    常用混合比较操作符函数 说明
    -a 逻辑与
    -o 逻辑或

    分析下列的测试目录含义

    [[ $a==z ]] #如果变量$a以字符"z"开始(匹配模式)则为真
    [[ $a=="z
    " ]] #如果变量$a与字符"z"(字面上的匹配)相等则为真
    [ "$a"=="z
    " ] #如果变量$a与字符"z*"(字面上的匹配)相等则为真
    [ -f "somefile" ] #判断是否为一个文件
    [ -x "/bin/ls" ] #判断/bin/ls是否有可执行的权限
    [ -n "$var" ] #判断$var变量是否有值
    [ "$a"="$b" ] #判断$a和$b是否相等

嵌套的if/then语句

if [ condition1 ]
    then
        if [ condition2 ]
            then
            do-something            #仅当condition1和condition2同时满足才执行
        fi
fi

 操作符相关主题

常见的操作符主要包括赋值操作符、计算操作符、位操作符合逻辑操作符。它们与C语言的操作符是相同的。包括:

赋值操作符:=;
计算操作符:+、-、*、/、**(求幂)、%;
位操作符:<<、<<=、>>、>>=、&、&=、|、|=、~、!、^、^=;
逻辑运算符:&&、||。

原文地址:https://blog.51cto.com/12148637/2368271

时间: 2024-10-30 01:20:55

grep简单用法及脚本基础篇的相关文章

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双

JAVA常用集合框架用法详解基础篇一之Colletion接口

首先,在学习集合之前我们能够使用的可以存储多个元素的容器就是数组. 下面举几个例子主要是引出集合类的: 1.8,4,5,6,7,55,7,8  像这样的类型相同的可以使用数组来存储,本例可以用int[] arr来存储. 2."zhnagsan",true,68 像这样的可以使用StringBuilder或者StringBuffer来存储,但最终需要使用.toString()的方法转换成字符串才可以使用.即 变为:"zhnagsantrue68". 3."李

Linux脚本基础篇-鸡兔同笼问题

概述 鸡兔同笼,是古代著名典型趣题之一,记载于<孙子算经>之中,题目为"有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚.问笼中各有多少只鸡和兔?".鸡兔同笼问题,是小学奥数的常见题型,也是计算机编程算法中常见的一道题,现阶段开始shell脚本的学习,因此不妨用脚本来尝试编写一个计算该问题的脚本,加深自己对Linux shell脚本的理解. 算法 在做一道数学题之前,思路是极为重要的,自己如何解决这道题,怎么按照计算机语言的思维来帮助我们计算就成为了首

python重点笔记-基础篇

本文是对基础的一个提炼:基础篇的知识点列表 1.print打印"..." print:print('Hello World!') 命令行模式: 运行Python,在命令行输入命令并执行. 程序模式: 写一段Python程序并运行. 注意:Linux中创建一个文件夹,touch test.py,在使用vim编辑,执行python test.py 可以将上述程序改成一个脚本,直接运行,需要为脚本语言指定解释器:#!/usr/bin/env python , 编辑后更改文件权限chmod 7

shell脚本基础进阶(四)----作业

20150913-15作业 1.描述shell程序的运行原理(可附带必要的图形说明) shell脚本基础进阶(一)----shell介绍 2.总结shell编程中所涉及到的所有知识点(如:变量.语法.命令状态等等等,要带图的哟) shell脚本基础进阶(二)----变量及运算符 3.总结课程所讲的所有循环语句.条件判断的使用方法及其相关示例:(if (jpg|png is not exist):echo "You say a XX") shell脚本基础进阶(三)----流程控制语句

Android应用开发基础篇(4)-----TabHost(选项卡)

链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/18/2357093.html 一.概述 TabHost是一种用来显示标签的组件,不清楚?看一下来电通这个应用就知道了.这个组件用起来与其他组件不太一样,它需要继承TabActivity这个类,还有它的布局文件与我们平时用的也有些不一样. 二.要求 实现一个具有三个标签的选项卡,每个标签使用不同的布局作为内容,当切换不同的标签时向用户发出提示. 三.实现      声明:这个应用需要用到前面一篇

【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!

[COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-16 10:08 30803人阅读 评论(18) 收藏 举报 游戏脚本luaanimationpython 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/681.htm

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

关于shell脚本基础编程第四篇

shell脚本基础编程第四篇本章主要内容:函数 函数 function:             function 名称 { 命令 ; } 或 name () { 命令 ; }           定义 shell 函数.               创建一个以 NAME 为名的 shell 函数.当作为一个简单的命令启用时,           NAME 函数执行调用 shell 的上下文中的 COMMANDs 命令.当 NAME           被启用时,参数作为 $1...$n 被传递