教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 shell 字符串的查找与替换

shell 字符串的查找与替换

发布时间:2014-11-16   编辑:jiaochengji.com
本文介绍下,有关shell编程中,字符串查找与替换的一些知识,有需要的朋友参考下。

本节学习shell脚本中有关字符串的查找与替换的方法。

1,字符串的查找
a.grep:能使用基本的正则表达式
b.egrep:能使用扩展的正则表达式 = grep -E
c.fgrep:匹配固定的字符串而非正则表达式
 
2,meta字符
.*代表“匹配任一字符的任意长度”,*若置于正则表达式的第一字符,不具有任何特殊意义
^符号置于[]中的第一个字符表示反向的意思
\{n,m\}:匹配他前面单个字符的重复出现的次数的区间 \{3\}表示至少三次
\( \):讲\(与\)间的模式存储在特殊的保留空间
 
3,后向引用
首先,将子表达式包含在\( \)中。最多包含9个子表达式
然后,使用\digit digit可以是1-9,表示与先前第digit个子表达式匹配
例子:
e\(ch\)o.*\1表示,当遇到echo时,把ch保存在内存中,并编号为1,之后,可以有0个或者多个字符。当再遇到ch时,匹配到一个
 
4,grep,sed实例
 

grep -v "^$" trace1.sh  去除空白行
sed 's/:.*//' /etc/passwd | sort -u 删掉第一个冒号后面的所有字符,删除重复的行然后排序
find /home/zhangh -type d -print | 寻找所有的目录
sed 's;/home/zhangh;/home/lih;' | 字符替换
sed 's/^/mkdir /'                | 在每行的开头添加mkdir

5,cut的使用
 

cut -d : -f 1,5 passwd     --分隔符为:,取第1,5列的数据
cut -d: -f 3- /etc/passwd  --从第三个字段开始显示,直到最后一个字段
cut -c1 -4,5 /etc/passwd   --取每行的1-4和第5个字符

6,awk
awk 用于处理字段与记录,awk将每条记录内的字段数目,存储在内建变量NF中。
例如:
 

复制代码 代码示例:
awk -F : '{print $1,$5}' /etc/passwd

有关awk的文章,请参考:
awk应用实例(经典awk例子)
awk变量应用实例
学习awk的内置函数
AWK 简介与例子

您可能感兴趣的文章:
shell 字符串查找与替换的方法详解
php查找字符串中http地址
shell字符串操作(长度,查找,替换)方法详解
shell 字符串的查找与替换
学习shell中EOF的用法
inux shell初级入门教程
PHP替换字符串(只替换首个字符串)
php5 字符串处理函数汇总
php查找、替换字符串中http地址的代码分享
php字符串查找函数strstr()、strrchr()实例

[关闭]
~ ~