正则表达式

回复 收藏
本帖最后由 乐橙306 于 2016-3-13 10:27 编辑

参考文档
正则表达式

http://baike.baidu.com/view/94238.htm

正则
http://www.8090st.com/zhengze-edu-biaoda.html

1231.png
2016-03-13 10:09 举报
已邀请:
0

乐橙306

赞同来自:

本帖最后由 乐橙306 于 2016-3-13 11:19 编辑

  1. 常用正则
  2.     - . : 匹配除换行符以外的任意字符
  3.     - ? : 重复0次或1次
  4.     - + : 重复1次或更多次
  5.     - * : 重复0次或更多次
  6.     - \d :匹配数字
  7.     - ^ : 匹配字符串的开始
  8.     - $ : 匹配字符串的结尾
  9.     - {n} : 重复n次
  10.     - {n,} : 重复n次或更多次
  11.     - [c] : 匹配单个字符c
  12.     - [a-z] : 匹配a-z小写字母的任意一个
  13.    -$1  :   表示正则捕捉到的内容
  14.     ^/(.*)$ 中 ^/ 表示已 / 开头, . 表示匹配除换行符以外的任意字符,* 表示重复0次或更多次,$ 表示匹配字符串的结束,() 表示捕获(匹配)内容
  15.   小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容
  16.     \.  转义字符 + 匹配除换行符以外的任意字符




以下字符在匹配其本身时,通常需要进行转义。在实际应用中,根据具体情况,需要转义的字符可能不止如下所列字符
. $ ^ { [ ( | ) * + ? \



0

乐橙306

赞同来自:

  1. linux中shell变量$#,$@,$0,$1,$2的含义解释:
  2. 变量说明:
  3. $
  4. Shell本身的PID(ProcessID)
  5. $!
  6. Shell最后运行的后台Process的PID
  7. $?
  8. 最后运行的命令的结束代码(返回值)
  9. $-
  10. 使用Set命令设定的Flag一览
  11. $*
  12. 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
  13. $@
  14. 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
  15. $#
  16. 添加到Shell的参数个数
  17. $0
  18. Shell本身的文件名
  19. $1~$n
  20. 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
  21. $1  $2   $3  表示 执行脚本时 后面带的参数
0

乐橙306

赞同来自:


添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

$1  $2   $3  表示 执行脚本时 后面带的参数


0

乐橙306

赞同来自:

  1. >> 表示追加
  2. >   表示覆盖
  3. <   指标准信息输入路径
  4. 1> 指标准信息输出路径
  5. 2> 指错误信息输出路径
  6. >   /dev/null   将输出重定向到/dev/null,这是个空设备,也就是忽略其输出。   
  7. 2> &1     是将错误输出到标准输出,如果在控制台调试,也就是屏幕上,方便调试。
  8. &>a.txt 意思是把标准输出和标准错误输出都重定向到文件a.txt中

  9. crontab -l
  10. SHELL=/bin/bash

  11. */10 * * * * /usr/sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1;/sbin/hwclock -w
0

乐橙306

赞同来自:

  1. Shell  if里面相关参数:
  2. http://www.cnblogs.com/image-eye/archive/2011/08/20/2147015.html
  3. [ -a FILE ]  如果 FILE 存在则为真。  

  4. [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真。  
  5. [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真。  
  6. [ -d FILE ]  如果 FILE 存在且是一个目录则为真。  

  7. [ -e FILE ]  如果 FILE 存在则为真。  
  8. [ -f FILE ]  如果 FILE 存在且是一个普通文件则为真。

  9. [ -r file ] 判断文件是否可读
  10. [ -w file ] 判断文件是否可写
  11. [ -x file ] 判断文件是否可执行
  12. [-s file] 文件大小非0时为真
  13. [ -z String ]String的长度为零则为真
0

乐橙306

赞同来自:

  1. 这里说下特殊符号   冒号  :


  2. 用shell 取一个字符串的第n个字符
  3. echo  ${变量名:起始:长度}

  4. [root@niaoyun-101 tmp]# cat a2.sh
  5. #!/bin/bash
  6. A=20150329_1300
  7. B=`echo ${A:9:2}`
  8. [root@niaoyun-101 tmp]#

0

乐橙306

赞同来自:

本帖最后由 乐橙306 于 2016-3-31 14:44 编辑
  1. shell截取字符串

  2. 参考文档
  3. http://www.jb51.net/article/56563.htm

  4. 格式 :
  5. echo ${var *  *  * }
  6. #    匹配第一   留右
  7. ## 匹配最后    留右
  8. %   匹配第一    留左
  9. %% 匹配最后   留左
  10. echo ${var:0:5}    字符串:起始:长度


  11. [root@aliyun-63 tmp]# cat a3.sh
  12. #!/bin/bash
  13. var=http://www.aaa.com/root/123.htm
  14. echo ${var#*//}        # 号从左往右截取,匹配第一,删除左边字符,保留右边字符
  15. echo ${var##*/}       ## 号从左往右截取,匹配最后,删除左边字符,保留右边字符
  16. echo ${var%/*}        %号从右往左截取,匹配第一,删除右边字符,保留左边字符
  17. echo ${var%%/*}    %% 号从右往左截取,匹配最后,删除右边字符,保留左边字符
  18. echo ${var:0:5}        从左边第几个字符开始,及字符的个数
  19. echo ${var:7}          从左边第几个字符开始,一直到结束
  20. echo ${var:0-7:3}    从右边第几个字符开始,及字符的个数
  21. echo ${var:0-7}      从右边第几个字符开始,一直到结束
  22. [root@aliyun-63 tmp]#

  23. [root@aliyun-63 tmp]# sh  a3.sh
  24. www.aaa.com/root/123.htm
  25. 123.htm
  26. http://www.aaa.com/root
  27. http:
  28. http:
  29. www.aaa.com/root/123.htm
  30. 123
  31. 123.htm
  32. [root@aliyun-63 tmp]#
0

lyhabc

赞同来自:

不错,先收藏
0

lyhabc

赞同来自:

这篇文章主要介绍了Shell脚本8种字符串截取方法总结,每个方法给出了实例代码和操作结果,一目了然,需要的朋友可以参考下



echo ${var *  *  * }
#    匹配左边第一   留右  从左边起
## 匹配左边最后     留右  从左边起
%   匹配右边第一    留左  从右边起
%% 匹配右边最后     留左  从右边起

星号表示要删除的字符
var#  * //  删除左边字符,保留右边字符。
var## * /
var%   /  *
var%%  /  *

Linux 的字符串截取很有用。有八种方法。
假设有变量 var=http://www.aaa.com/123.htm


1. # 号截取,删除左边字符,保留右边字符。

var=http://www.aaa.com/123.htm
echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm


2. ## 号截取,删除左边字符,保留右边字符。

var=http://www.aaa.com/123.htm
echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/
结果是 123.htm


3. %号截取,删除右边字符,保留左边字符

var=http://www.aaa.com/123.htm
echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.aaa.com


4. %% 号截取,删除右边字符,保留左边字符

var=http://www.aaa.com/123.htm
echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:


5. 保留/打印从左边第几个字符开始,及字符的个数

var=http://www.aaa.com/123.htm
echo ${var:0:5}

其中的 0 表示左边第一个字符开始打印,5 表示字符的总个数。
结果是:http:


6. 从左边第几个字符开始,一直到结束。

var=http://www.aaa.com/123.htm
echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm

7. 从右边第几个字符开始,及字符的个数

var=http://www.aaa.com/123.htm
echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123


8. 从右边第几个字符开始,一直到结束。

var=http://www.aaa.com/123.htm
echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。
结果是:123.htm
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
0

summer123

赞同来自:

好帖啊我顶
0

Zeedger - 死宅

赞同来自:

mark

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: