追求卓越 因为经历,所以幸福
分类: 嵌入式
2014-03-05 15:14:58
$ sed
's/[^,]*/{&}/' example.txt
使用此特殊字符匹配任意字符或字符串的重复多次表达式。例如:
c o m p u * t 将匹配字符u一次或多次。
l 只匹配[ ] 内字符。可以是一个单字符,也可以是字符序列
[ ]在指定模式匹配的范围或限制方面很有用。结合使用*与[ ]更是有益,
例如:[ A - Z a - Z ] *将匹配所有单词
注意:^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。
如:[^a-zA-Z]匹配任一非字母型字符,而[ ^ 0 - 9 ]匹配任一非数字型字符。
$ sed 's/[^,*]/{&}/' example.txt
表示把开头不是一个或多个“,”时的第一个字符加上{}
只对第一个字符“1”加上了{},主要原因是[ ]内的字符一次只匹配一个。
$ sed 's/[^,]*/{&}/' example.txt
表示把不是“,”之前的所有字符串,加上{}
原文本文件 example.txt
102,John Smith,IT Manager
103,Raj Reddy,Sysadmin
104,Anand Ram,Developer
105,Jane Miller,Sales Manager
,123
,lin,feng
,,,sss
a) 截取非数字的所有字符 --失败
$ sed 's/[^0-9]*/ /' example.txt
失败原因:[^0-9]表示匹配一非数字型字符,而[^0-9]*表示一或多个非数字型字符,但只要有一个字符匹配成立,就进行替换。
b) 截取非数字的所有字符 --成功
$ sed 's/[^0-9].*/ /' example.txt