正规表示法(或称为常规表示法)是透过一些特殊字符的排列,用以搜寻/取代/删除一列或多列文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项『表示式』。正规表示法并不是一个工具程序, 而是一个字符串处理的标准依据,如果您想要以正规表示法的方式处理字符串,就得要使用支持正规表示法的工具程序才行, 这类的工具程序很多,例如 vi, sed, awk 等等。
一、正则表达式是什么?
正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。
二、正则表达式与通配符
1. 正则表达式
用来在文件中匹配符合条件的字符串,正则表达式是“包含匹配”。grep、awk、sed等命令可以支持正则表达式。
2. 正则表达式元字符
正则表达式是通过元字符来进行字符串匹配的,具体请参考:http://www.cnblogs.com/refine1017/p/5011522.html
3. 通配符
用来匹配符合条件的文件名,通配符是“完全匹配”。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
4. 通配符包括
* 匹配任意字符
? 匹配任意一个字符
[] 匹配中括号中的任意一个字符
三、cut命令
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
1. 常用参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。
2. 示例1:打印出用制表符分割的文件的某一行
[root@localhost shell]# cat student.txt ID Name Gender Mark1 ming F 852 zhang F 703 wang M 754 li M 90[root@localhost shell]# cut -f 4 student.txt Mark85707590
3. 示例2:打印csv文件的某一行
[root@localhost shell]# cat student.csv ID,Name,Gender,Mark1,ming,F,852,zhang,F,703,wang,M,754,li,M,90[root@localhost shell]# cut -d "," -f 4 student.csv Mark85707590
4. 示例3:打印一个字符串的第几个字符
[root@localhost shell]# echo "abcdef" | cut -c 3c
5. 示例4:截取中文字符的某一个文字
[root@localhost shell]# echo "Shell编程" | cut -nb 1S[root@localhost shell]# echo "Shell编程" | cut -nb 2h[root@localhost shell]# echo "Shell编程" | cut -nb 3e[root@localhost shell]# echo "Shell编程" | cut -nb 4l[root@localhost shell]# echo "Shell编程" | cut -nb 5l[root@localhost shell]# echo "Shell编程" | cut -nb 8编[root@localhost shell]# echo "Shell编程" | cut -nb 11程
新闻热点
疑难解答