zoukankan      html  css  js  c++  java
  • Linux 中的grep命令单引号,不加任何参数以及双引号的作用

    单引号:

     

    可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。

     

    双引号:

     

    把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。

     

    不加引号:

     

    不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

     

    使用规则:

     

    一般常量用单引号''括起,如果含有变量则用双引号""括起。

     

    最大不同:

     

    单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字

    元,而不会有特殊符号

     

    使用举例:

     

    “”号里面遇到$,等特殊字符会进行相应的变量替换

    ‘’号里面的所有字符都保持原样

    对于字符串,两者相同

    匹配模式也大致相同

    但有一些区别非常容易混淆

     

    grep "$a" file        #引用变量a,查找变量a的值

     

    grep '$a' file        #查找“$a”字符串

     

    grep "\" file        #grep: Trailing backslash(不知原因)

     

    grep '\' file        #查找‘’字符

     

    1、$ 美元符

     

    2、 反斜杠

     

    3、` 反引号

     

    4、" 双引号

    这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义

     

    如果用双引号,查找一个,就应该用四个:

    grep "\\" file 这样就对了,这样等同于:

    grep '\' file

     

    第一条命令shell把四个\,转义成2个传递给grep,grep再把2个转义成一个查找

    第二条命令shell没转义,直接把2个传递给grep,grep再把2个转义成一个查找

    其实grep执行的是相同的命令

    原文地址:http://blog.csdn.net/cupidove/article/details/8783968

  • 相关阅读:
    hbase 2.0.2 分布式安装配置/jar包替换
    hive character '' not supported here
    request.getSession().getServletContext().getRealPath()的一些坑
    hive 自定义函数
    hive 导出数据的几种方式
    hive 分区表与数据产生关联的三种方式
    hive 日志配置/表头配置
    hive 3.1.0 安装配置
    zookeeper 客户端操作
    linux 循环读取文件的每一行
  • 原文地址:https://www.cnblogs.com/xiohao/p/5992300.html
Copyright © 2011-2022 走看看