• [characters] 匹配任意一个属于字符集中的字符 [^characters]或[!characters] 匹配任意一个不属于字符集中的字符 [[:class:]] 匹配任意一个属于指定字符类中的字符 {string1,string2,...} ...

    以下为学习整理内容,供自己翻阅和他人翻阅使用

    通配符(shell)

    *	匹配任意多的字符(包括0个和1个)
    ?	匹配任意单个字符(不包括0个)
    [characters] 匹配任意一个属于字符集中的字符
    [^characters]或[!characters]	匹配任意一个不属于字符集中的字符
    [[:class:]]	匹配任意一个属于指定字符类中的字符
    {string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串
    

    字符类

    [:alpha:]	英文大小写字符,亦A-Z a-z 
    [:alnum:]	英文大小写字符以及数字:亦A-Z a-z 0-9
    [:blank:]	空格键与tab键
    [:cntrl:]	键盘的控制按键
    [:digit:]	数字,亦0-9
    [:graph:]	除去空格符(空格键和tab键)外的其ls它所有符号
    [:lower:]	代表小写字符,亦:a-z
    [:print:]	任何可以被打印出来的字符
    [:punct:]	标点符号
    [:upper:]	大写字符,亦:A-Z
    [:space:]	空白符
    [:xdigit:]	16进位的数字类型,0-9,A-F,a-f的数字与字符
    

    一些通配符的使用案例图
    在这里插入图片描述
    在这里插入图片描述

    特殊符号(shell Meta字符)

    IFS	由空格键、tab键、enter键三者之一组成
    CR 	由回车<enter>键产生
    = 	设定变量
    $	取用变量值或者运算值前导符
    >,>> 数据流,重定向 输出导向(stdout) > 重定向取代,>>重定向增加
    <,<< 数据流,重定向 输入导向(stdin)  < 重定向文件内容 ,<< 键盘输入内容
    |	管道符号,管线(pipe),分隔管线命令的界定
    & 	重导向文件描述符号(file descriptor) 例: &> 或者 2>&1 将标准输入输出文件重定向一个文件中
    	或者作为工作控制,将命令置于背景(后台)执行
    () 	将其内的命令置于子shell(nested subshell)执行
    	或用于运算
    	或命令的替换
    {}	将其内的命令置于非命名函数(non-named function)中执行
    	或用在变量替换的界定范围,例:${PATH}:~/bin
    ;	连续指令分隔符,与管线不同,他是命令分隔符,不进行过滤处理
    ' '	单引号,不具有变量置换(解析)功能($变为纯文本);硬转义,其内部所有的shell 元字符、通配符都会被关掉。
    " "	双引号,具有变量置换(解析)功能($可保留相关功能);软转义,其内部只允许出现特定的shell 元字符
    ` `	反引号,放置的命令可先执行的指令,与$(指令)功能相同
    &&	逻辑运算与,在前一个命令结束时,若返回值为真(true),继续执行下一个命令
    ||	逻辑运算或,在前一个命令结束时,若返回值为假(false),继续执行下一个命令
    !	逻辑运算非
    #	批注符号,常用在脚本中,视为说明,不执行
    \	跳脱字符,将特殊字符或者通配符还原成一般字符
    /	根目录符号,或者路径分隔符
    ~	当前用户家目录
    

    转义字符

    \b	退格字符
    \f	走纸符
    \n	换行符
    \r	回车符
    \t	水平制表符
    \v	垂直制表符
    \ddd 1-3位八进制值
    \xhex	十六进制值
    \c	任何字面字符
    

    正则表达式

    linux中支持正则的编辑工具
    编辑工具			基本正则表达式			扩展正则表达式
    grep				支持			不支持
    egrep				支持			 支持
    vi				支持			不支持
    vim				支持				 支持
    sed				支持			不支持(-r选项支持)
    awk				支持			 支持
    
    ==基本正则表达式(元字符)==
    	^	匹配指向一行的开头;
    		在awk中匹配字符串的开始,即使字符串包含嵌入的换行符
    	$	匹配指向一行的结尾
    		在awk中匹配字符串的结尾,即使字符串包含嵌入的换行符
    	.	匹配任意单个字符(除了换行符外)
    		awk中,可以匹配换行符
    	c	匹配字母c
    	*	匹配前一个字符出现0次或多次
    	.*	匹配任意多个字符
    	[ ]	匹配集合中的任意单个字符,括号中为一个集合
    	[^ ]匹配否定,对括号中的集合取反
    	[ - ] 匹配连字符两边范围内
    	[[:class:]]	匹配字符类中的任意一个字符
    	\	匹配转义后的特殊字符
    	\{n,m\}	匹配前面某个范围内单个字符重复n到m任意次数
    	\{n,\}	匹配前面某个范围内单个字符至少重复n次
    	\{n\}	匹配前面某个字符重复n次
    	\( \)	将\(与\)之间的内容存储在“保留空间”,最大存储9个
    	\n		n表示1-9数字通过\1到9调用“保留空间”的内容
    
    ==扩展正则表达式(元字符)==
    	+	匹配前面的正则表达式的一次或多次出现
    	?	匹配前面的正则表达式的零次或一次出现
    	|	匹配逻辑或,指定可以匹配其前面或后面的正则表达式	
    	( )	对正则表达式分组,正则集合
    	{n,m}	等同于基本表达式\{n,m\}
    
    展开全文
  • 本文总结了通配符,元字符,转义字符的基本用法和用例。让大家对shell编程基础知识及在Linux shell中执行命令过程有个初步了解。Shell中经常使用通配符,通配符是由shell处理的,而不是具体命令处理的,其用法类似...

    一、linux shell通配符(wildcard)

    通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的“参数”里(它不用在命令名称里,也不用在操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。

    总之,通配符实际上就是一种shell实现的路径扩展功能。在通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。

    例如以下命令:
    [root@localhost wildcard]# ls
    a.htm  b.htm
    [root@localhost wildcard]# ls *.htm
    a.htm  b.htm
    [root@localhost wildcard]# ls d*.htm
    ls: d*.htm: 没有那个文件或目录

    分析如下:

    第2个命令中,对于参数*.htm,shell在当前目录下能搜索到相匹配文件,会换成a.htm b.htm。实际执行的是ls a.htm b.htm命令。

    第3个命令,对于参数d*.htm, shell在当前目录找不到相匹配的文件,则直接将d*.htm作为ls参数,实际执行的是ls d*.htm。由于找不到该文件,所以会出现:没有那个文件或目录。

    了解了shell通配符,我们现在看下,shell常见通配符有那一些了。

    shell通配符
    字符 含义 实例
     *  匹配0或多个字符  a*b  a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, a01b, ab等
     ?  匹配任意一个字符  a?b  a与b之间有且只有一个字符, 可以是任意字符, 如aab, adb, a0b等
     [list]  匹配list中的任意单一字符  a[xyz]b  a与b之间有且只有一个字符, 且只能是x或y或z, 如: axb, ayb, azb。
     [!list]  匹配除list中的任意单一字符  a[!0-9]b  a与b之间有且只有一个字符, 但不能是数字, 如axb, aab, a-b等
     [c1-c2]  匹配c1-c2中的任意单一字符  a[0-9]b  a与b之间有且只有一个字符,该字符是0-9之间的数字,如a0b, a1b,... ,a9b。
     {string1,string2,...}  匹配 sring1 或 string2 (或更多)其一字符串  a{abc,xyz,123}b    a与b之间只能是abc或xyz或123这三个字符串之一。












    需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell特殊代号字符就可。


    二、shell元字符

    shell除了有通配符之外,由shell负责预先先解析后,将处理结果传给命令行之外,shell还有一系列自己的其他特殊字符。

    shell元字符
    字符 说明
     =  变量名=值,为变量赋值。注意=左右紧跟变量名和值,中间不要有空格
     $  变量值替换,$变量名替换为shell变量的值;为避免在文本连接时混淆,请使用${变量名};$0...$9 代表shell文件的参数。
     >  prog > file 将标准输出重定向到文件。
     >>  prog >> file 将标准输出追加到文件。
     <  prog < file 从文件file中获取标准输入
     |  管道命令,例:p1 | p2 将p1的标准输出作为p2的标准输入
     &  后台运行命令,最大好处是无需等待命令执行结束,就可以在同一命令行下继续输入命令
     ()  在子shell中执行命令
     {}  在当前shell中执行命令,或用在变量替换的界定范围(例如上面的${变量名}用法)。
     ;  命令结束符。例如p1;p2表示先执行p1,再执行p2
     &&  前一个命令执行成功后,才继续执行下一个命令。例:p1 && p2 ;若p1执行成功后,才执行p2,反之,不执行p2;
     ||  前一个命令执行失败后,才继续执行下一个命令。例:p1 || p2 ;若p1执行成功后,不执行p2,反之,才执行p2;
     !  执行历史记录中的命令
     ~  home目录















    三、shell转义符

    有时候,我们想让通配符,或者元字符变成普通字符。那么这里我们就需要用到转义符了。 shell提供转义符有三种。

    shell转义字符
    字符 说明
     ''  单引号,硬转义,其内部所有的shell元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。
     ""  双引号,软转义,其内部只允许出现特定的shell元字符($,`,\):$用于变量值替换、`用于命令替换、\用于转义单个字符
     \  反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义。

    展开全文
  • 转义字符: (\):使反斜杠后面的一个变量变为单纯的字符串 (’’):转义其中所有的变量为单纯的字符串 (""):保留其中的变量属性,不进行转义处理 (``):把其中的命令执行后返回结果 ...

    通配符

    	*	匹配零个或多个字符
    	?	匹配单个字符
    	[0-9]	匹配0~9之间的单个数字的字符
    	[abc]	匹配a、b、c三个字符中的任意一个字符
    

    转义字符:

    	(\):使反斜杠后面的一个变量变为单纯的字符串
    	(''):转义其中所有的变量为单纯的字符串
    	(""):保留其中的变量属性,不进行转义处理
    	(``):把其中的命令执行后返回结果
    
    展开全文
  • linux shell 转义字符

    2019-01-29 14:16:58
    shell中有两类字符,一类是普通字符,在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;另一类即元字符,是Shell的保留字符,在Shell中有着特殊的含义。 1、Shell中的转义符是反斜杠"\",...

    shell中有两类字符,一类是普通字符,在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;另一类即元字符,是Shell的保留字符,在Shell中有着特殊的含义。

    1、Shell中的转义符是反斜杠"\",使用转义符的目的是使转义符后面的字符单纯地作为字符出现,而不解释其特殊的含义。

    [root@localhost yum.repos.d]# name="joker"
    [root@localhost yum.repos.d]# echo $name
    joker
    [root@localhost yum.repos.d]# echo \$name
    $name

     

    2、" ",部分引用是指双引号括起来的引用。在这种引用的方式中,$符、反引号(`)、转义符(\)这3种特殊字符依然会被解析为特殊意义。

    [root@localhost yum.repos.d]# echo $name
    joker
    [root@localhost yum.repos.d]# echo "My name is $name"
    My name is joker

     

    3、' ',全引用是指用单引号括起来的引用。单引号中的任何字符都只当作是普通字符(除了单引号·本身,也就是说单引号中间无法再包含单引号,即便用转义符转义单引号也不行)。所有在单引号中间无法再包含单引号,即便用转义符转义单引号也不行)。所有在单引号中的字符都只能代表其作为字符的字面意义

    [root@localhost yum.repos.d]# echo $name
    joker
    [root@localhost yum.repos.d]# echo 'My name is $name'
    My name is $name

     

     

     

     

     

     

     

    参考:

    https://www.cnblogs.com/youcong/p/7913173.html

     

     

    展开全文
  • java,linux转义字符区别

    2016-10-09 17:44:33
    java,linux转义字符区别

    java转义字符为反斜杠\,是将普通字符转化为特殊有有意义的字符,如n字母加上\变为\n,就是换行符,\r,\t都是被转义后的字符。

    /则是表示路径,例如:d:/text.txt或d://text.txt

    使用时出现问题:

    java中String字符串使用split切割字符串时的问题,String str=“a|b|v”;

    而直接用split("|");是不行的。原因是竖线 | 在java正则中是将两个匹配条件进行逻辑“或”(Or)运算,因此需要将|转义,也就是 split(“\|”);

    但实际在java中使用时,\又是java的转义字符,需要转义,最终变成了split("\\|"),不过使用split("[|]")也可以达到效果,[]在JAVA正则中表示选择[]里面的一个字符。

    linux中\也代表转义字符,但是是将有特殊意义的字符转为普通字符,例如:.代表当前目录,使用\.转义后就是代表一个.

    ..代表上层目录,转义后就是\.\.就是两个..

    echo  $HOME 输出是家目录,转义后就是 echo \$HOME 输出为原样输出, $HOME




    展开全文
  • linux常用的转移字符和重要的环境变量4个常用的转义字符举例释义: 越来越觉得想要玩转linux一些基本的常见的知识还是要牢记在心的,不像编程语言,编码达到一定量自然就记住了。所以这个还需明白于心的。 4个常用的...
  • 转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),在Unix操作系统中有一类特殊的字符,叫做元字符。Linux/...
  • //学习笔记反斜杠(\):是反斜杠后面的一个变量变为单纯的...单引号(”):转义其中所有的变量为单纯的字符串。双引号(””):保留其中变量属性,不进行转义处理。反引号(“):把其中的命令执行后返回结果。...
  • \转义单个字符或者字符串 ''强引用,也是转义 ""弱引用,也是转义 a=# echo $a echo # echo * 元字符:* # ? !这些字符都有自身的含义,需要转义\ echo \* echo \# echo \### echo \* * echo \* \* ...
  • 部分转载于:http://www.cnblogs.com/hwl1023/p/4941670.html ... 字符可分为显示字符和控制字符。  显示字符:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。  控制字符:在
  • linux echo 怎样输出转义字符? echo -e echo -e "$to already exists. overwrite (yes/no)? \c
  • linux shell 转义

    2014-04-11 17:31:18
    一些转义字符的表示的特殊意思 和echo,sed连用时: \n 表示新行 \r 表示回车 \t 表示水平的制表符 \v 表示垂直的制表符 \b 表示后退符 \a 表示“警告”(蜂鸣或是闪动) \0xx 翻译成ASCII码为八...
  • outputlinux 命令 echo 输出 转义字符inputman echo -e enable interpretation of backslash escapesalgo例如#it works below echo -e "1\n2\n3" #it does not work below echo -e 1\n2\n3
  • linux 转义字符

    2014-05-18 19:22:39
    shell常见通配符   字符 ...匹配 0 或多个字符 ...a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, ...b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。 [list]  匹配 l
  • 标准ASCII码表的码值从0到127排列,分为可显示字符和不可显示字符,为了表示那些不可显示字符和部分在应用中会引起编码歧义的字符如:反斜杠符[\],单引号符[‘],双引号符[“],我们引入了转义字符; ...
  • linux往文本文件写入ESC字符 在终端输入 printf “\033” > file.txt \033是ESC字符的8进制 可以用man ascii查看 ESC字符就会保存在file.txt中
  • linux下特殊字符转义

    2017-03-02 16:51:15
    用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改) $ touch '=12.txt' 处理反斜杠 () 反斜杠会告诉 shell 忽略后面字符的特殊含义。你必须将文件名用单引号括起来,就像处理分号那样。其他
  • 转载自:http://c.biancheng.net/cpp/view/2737.html #######################################################3 echo命令用法:...转义字符 如果表达
1 2 3 4 5 ... 20
收藏数 53,732
精华内容 21,492
关键字:

*转义字符 linux