zoukankan      html  css  js  c++  java
  • 鸟书shell 学习笔记(二) shell中正則表達式相关

    通配符与正則表達式的差别

    通配符是bash原生支持的语法,正則表達式是处理字符串的一种表示方式, 正則表達式须要支持的工具支持才干够

    语系设置 : export LANG=C
    grep alias 设置 : grep --color=auto

    grep 的一些高级參数


    grep [-A] [-B] '搜寻字符串' filename //同一时候输出之前的k行和之后的m行
    -A : 后面可加数字,表示列出改行以及之后的n行
    -B : 列出前面几行 

    搜寻keyword假设中间使用正則表達式的话,则正則表達式部分须要加上[]
    eg : grep '[a-z]oooo' filename

    匹配行首 '^string' 可是 '[^s]string'则表示排除s这个字母
    匹配行尾 'string$'
    eg:排除凝视行,和空行
    grep -v '^$' /etc/profile | grep -v -n '^[[:blank:]]*#'



    sed 使用方法

    sed [-nefr] [动作] sed能够直接在文件上进行操作
    选项与參数:
    -n  :使用安静(silent)模式。

    在一般 sed 的使用方法中,全部来自 STDIN 的数据一般都会被列出到萤幕上。但假设加上 -n 參数后,则仅仅有经过 sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则能够执行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。

    (默认是基础正规表示法语法) -i :直接改动读取的文件内容,而不是由萤幕输出。 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,假设我的动作 是须要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』 function 有底下这些咚咚: a :新增。 a 的后面能够接字串,而这些字串会在新的一行出现(眼下的下一行)~ c :代替, c 的后面能够接字串。这些字串能够代替 n1,n2 之间的行! d :删除,由于是删除啊,所以 d 后面通常不接不论什么咚咚。 i :插入。 i 的后面能够接字串,而这些字串会在新的一行出现(眼下的上一行); p :列印。亦即将某个选择的数据印出。通常 p 会与參数 sed -n 一起执行~ s :代替,能够直接进行代替的工作哩!通常这个 s 的动作能够搭配 正规表示法!比如 1,20s/old/new/g 就是啦!


    eg: 
        nl regular.txt | sed '2,5d' //删除第二到第五行 ,sed 后面的动作必需要使用''扩住
        nl regular | sed '2a add hello' 第二行后面添加数据
        nl regular | sed '2,5c change 2 to 5 line content' 替换2-5行的内容
        nl regular | sed -n '2,5p' 选定行打印出来

    sed的查找与替换 sed 's/要被替换的字符串/新字符串/g'
        cat .bashrc | sed 's/#.*$//g' | sed 's/^$//g' |grep -n 'exp' //删除凝视行和空白行
         
    sed -i 's/.$/!/g' regular  //直接改动文件


    awk 好用的数据处理工具
    适合小型数据处理

    awk '条件类型1{动作1} 条件类型2{动作2} ...' filename


    通配符



    特殊正则


    正则


    拓展正则




  • 相关阅读:
    javascript 数字时钟
    ubuntu下键盘背景灯光设置
    使用百度地图SDK
    ListView 的Item状态改变和保存
    继续Jsoup 正方教务系统的教学质量评价一键好评
    Java下的可视化开发工具使用 WindowBuilder Pro
    js 数组排序
    js数组去重
    js call() apply()
    [总结] js的2种继承方式详解
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6946508.html
Copyright © 2011-2022 走看看