加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式与通配

发布时间:2020-12-14 04:25:47 所属栏目:百科 来源:网络整理
导读:先来点shell script的初步: shell 脚本使用#! 开头,后跟解释器的路径 给脚本文件赋予可执行属性: chmod u+x test.sh 执行shell 脚本:./[脚本名] 或者直接: bash 脚本 ls -l /etc/sh*命令 选项 参数使用;可以在同一行写多条语句 edemon@linux:~$ cat tt#

先来点shell script的初步:

shell 脚本使用#! 开头,后跟解释器的路径

给脚本文件赋予可执行属性: chmod u+x test.sh

执行shell 脚本:./[脚本名]

或者直接: bash 脚本

ls -l /etc/sh*命令 选项  

参数使用;可以在同一行写多条语句


edemon@linux:~$ cat tt
#!/bin/bash
echo "the time is "
date
echo here is :
who
edemon@linux:~$ bash tt
the time is
2016年 04月 29日 星期五 08:58:57 CST
here is :
edemon   tty7         2016-04-29 16:44 (:0)
edemon@linux:~$ chmod u+x tt
edemon@linux:~$ ./tt
the time is
2016年 04月 29日 星期五 08:59:30 CST

#它和编译生成的二进制文件不同:

edemon@linux:~$ gcc t.c -o exec
edemon@linux:~$ ./exec
hello!
edemon@linux:~$ ls -l |grep exec
-rwxrwxr-x 1 edemon edemon     8592 4月  29 09:01 exec
edemon@linux:~$ cat exec
ELF>0@@?@8    @@@@@@??88@8@@@?? ``(0    #乱码
元字符:描述字符的字符 正则表达式regular expression (RE,正则表达式) 用于文本操作和字符串的操作,用于数据过滤的操作。 几个重要的元字符: * 重复前面的字符0次或者多次 . 匹配任意字符 ^ 匹配行首,或者后面字符的非 $ 匹配行尾 [] 匹配字符集和 转义字符 &;&; 精确匹配 &;n&; 精确匹配前面字符出现n次 &;n,&; 精确匹配前面的字符至少出现n次 &;n,m> 精确匹配前面的字符出现n~m次 例子: ^abs 匹配abs开头的行   vs* 这些字符串均匹配它:vss,vs,vssss cv$ 匹配行尾是cv的所有的行 ^$ 匹配所有的空行 ^.$ 匹配一个字符的行 [0123456789] [0-9] 上面两个表达式的意义是一样的,匹配任意一个0~9的阿拉伯数字 [^3-8] 不再3~8内的数字 [A-Za-z][A-Za-z]* 匹配任意一个英文单词(非空) cb&;3&;a cbbba cb&;3,&;a cbbbbba,cbbba,cb&;3,5&;a b可以重复3~5次 [a-z] &;3&; 精确匹配3个小写字符 通配中的元字符和正则表达式中的元字符的含义不是完全一样的。比如*在正则表达式中的含义是前面字符的0个或者多个重复,在通配中是任意位置的任意字符; ^在正则表达式中是行首匹配,在通配中是取反。 通配例子: edemon@linux:~$ ls *.tex texmaker.tex edemon@linux:~$ ls my*.doc    mycode2.doc mycode.doc edemon@linux:~$ ls mycode?.doc mycode2.doc {}表达匹配{}内的所有的选项,即“条件或”的关系: edemon@linux:~$ ls {tex,.java} texmaker.tex t.java

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读