zoukankan      html  css  js  c++  java
  • Linux运维学习笔记-通配符及正则表达式知识总结

    通配符:

     

    *

    代表所有

     

    ?

    任意一个字符

     

    两个命令的分隔符

     

    #

    注释

     

    |

    管道,将|前命令的执行结果作为|后命令的输入

     

    ~

    用户的家目录

     

    -

    上一次的目录

     

    $

    变量前面需要加的符号

    echo $LANG

    /

    路径分隔符

     

    重定向(覆盖)

     

    >> 

    追加重定向

     

    输入重定向

    xargs、tr

    << 

    追加输入重定向

    cat

    ''

    单引号,不具有变量置换功能,输出时所见即所得

    echo 'date'

    ""

    具有变量置换功能,解析变量后输出,不加引号相当裕双引号

    echo "`date`"

    ``

    反引号,两个`` 中间为命令,会先执行,等价$()

    echo "$(date)"

    {}

    中间为命令区块组合或内容序列

     

    逻辑运算中的"非"(not)

     

    &&

    and 并且,当前一个指令执行成功时,执行后一个指令

     

    ||

    or 或者,当前一个指令执行失败时,执行后一个指令

     

    ..

    上一级目录

     

    .

    当前目录

     

     

     

     

     

     

    正则表达式为处理大量字符串而定义的一套规则和方法。

    常用于(grepawksed)

    注意事项:

    1、linux正则表达式一般以行为单位进行处理的。

    2、alias grep='grep –color=auto'让匹配的内容显示颜色。

    3、注意字符集,export LC_ALL=C

     

    例子:

    cat >>oldboy.log<<GONGLI

    I am oldboy teacher!

    I teach Linux.

    I like badminton ball,billiard ball and chinese chess!

    my blog is http://oldboy.blog.51cto.com

    our site is http://www.etiantian.org

    my qq num is 49000448

    not 4900000448.

    mygod,i am not oldboy,but OLDBOY!

    GONGLI

     

     

    示例:

    grep    -n显示行号,-v排除,-o只显示匹配到的内容,默认匹配行

     

    过滤出以m开头

    [root@ctc oldboy]# grep "^m" oldboy.log

    my blog is http://oldboy.blog.51cto.com

    my qq num is 49000448

    mygod,i am not oldboy,but OLDBOY!

    过滤出以m结尾

    [root@ctc oldboy]# grep "m$" oldboy.log  

    my blog is http://oldboy.blog.51cto.com

    过滤出空行

    [root@ctc oldboy]# grep -n "^$" oldboy.log

    3:

    8:

    [root@ctc oldboy]#

     

    过滤掉除空行外的所有

    [root@ctc oldboy]# grep -nv "^$" oldboy.log

    1:I am oldboy teacher!

    2:I teach Linux.

    4:I like badminton ball,billiard ball and chinese chess!

    5:my blog is http://oldboy.blog.51cto.com

    6:our site is http://www.etiantian.org

    7:my qq num is 49000448

    9:not 4900000448.

    10:mygod,i am not oldboy,but OLDBOY!

    只过滤除指定字符

    [root@ctc oldboy]# grep -o "qq" oldboy.log      

    qq

     

     

     

    示例:

     

     

     

     

     

     

    示例:

     

     

     

     

     

     

     

     

     

     

     

    grep:

     

     


     

    元字符:

     单词边界

    换行

     

     

    Sed:

    stream editor    Linux三剑客老二,流编辑器,实现对文件的增删改替换查。

    参数:-n    取消默认输出,-i    修改文件内容,-e    允许多项编辑
    功能:

    p打印。

    s与g联合使用时,表示对当前行全局匹配替换。

    s常说的查找并替换,用一个字符串替换成另一个。

    例子:sed -i s#oldboy#oldgirl#g a.txt

    #是分隔符,可以用/@等替换

    Awk:

    awk    过滤、输出内容,一门语言。NR 行号。

    $1    第一列,$2    第二列依次类推,但$0表示一行,NF表示最后结尾一列。

    NR表行数
    -F    指定分隔符。

    命令的语法始终是:awk '{pattern + action}' 或者 awk 'pattern {action}'。

    例子:awk -F % 'NR>=7,NR<=15 {print $1 $3 $7}' myfile

  • 相关阅读:
    [Swift]LeetCode156.二叉树的上下颠倒 $ Binary Tree Upside Down
    [Swift]LeetCode155. 最小栈 | Min Stack
    [Swift]LeetCode154. 寻找旋转排序数组中的最小值 II | Find Minimum in Rotated Sorted Array II
    CXF生成client注意事项
    使用oracle10g官方文档找到监听文件(listener.ora)的模板
    在Vi里面实现字符串的批量替换
    C语言之基本算法12—谁是冠军
    虚拟机 minimal 安装增强包
    ZOJ
    leetcode Reverse Nodes in k-Group
  • 原文地址:https://www.cnblogs.com/tcheng/p/8595301.html
Copyright © 2011-2022 走看看