sed命令-学习笔记.doc
文本预览下载声明
专业术语
英文 含义 carriage return 回车 form feed 换页 new line 换行 backslash 反斜杠 backspace 退格、回退 parentheses 圆括号
sed 命令
关键字 sed命令 sed 命令
/archives/125 讲正则表达式
参数说明
-s 替换
d 删除
p 打印
y 对应着替换,长度必须相同
-e 表示可以指定多个指令,一个-e 指定一个表达式
如果表达式中含有单引号呢?那外面就用双引号
sed -e s/cs_release_policy = 2Q/cs_release_policy22/ abc.txt
或者
sed -e s/cs_release_policy = \2Q\/cs_release_policy22/ abc.txt 转义字符是 \,并且必须用单引号括起来。
sed -e s/actual\s\+time[^\s]\+\s\+\(.*\)/\1/g -e /Total/d $filename
sed -e s/actual\s\+time[^\s]\+\s\+\(.*\)/\1/g -e s/cost[^\s]\+\s\+\(.*\)/\1/g -e /Total/d column.txt
注意:(1)+ 、?,{ 和( 需要转义
(2)[不需要转义
范例1
sed -i /tomcat/r aa.txt install_linux32_all.txt
将所有包含tomcat的行写入到文件aa.txt 中。
范例2:
获取cfc/333中斜杠后面的三个数字,即333
echo -n cfc/333 |sed s/[a-z]\{3\}\/\([0-9]\{3\}\)/aaa\/\1/ aaa/333
echo -n cfc/333 |sed s/[a-z]\{3\}\/\([0-9]\{3\}\)/\1/ 333
单词的边界
单词边界
sed
[root@huangwei c_language]# echo abc dd3 |sed -n /\bdd\b/p
[root@huangwei c_language]# echo abc dd |sed -n /\bdd\b/p
abc dd sed -i s/\b\([0-9]\{5\}\)111\b/\1/g $filepath 说明:\b表示单词的边界。
注意:在替换后的字符中加\b是不对的,反例如下:
[root@localhost script_file]# echo abc |sed s/\babc\b/\bxxx\b/
bxxxb 正确的应该是:
echo abc |sed s/\babc\b/xxx/
grep
echo $ii |grep -q \Kingbase
获得路径的最里的文件夹名
echo -n /home/whuang/javacode |sed -e s/^\/[a-z\/]\+\(javacode\)/\1/g echo -n /home/whuang/javacode |sed -e s/^\/[a-zA-Z0-9\/]\+\(javacode\)/\1/g echo [/home/whuang/javacode] |sed -e s/^\[[a-zA-Z0-9\/]\+\(javacode\)]/\1/g echo /home/whuang/javacode |sed -e s/^\/[a-zA-Z0-9\/]\+\/\([^\/]\)/\1/g [/home/whuang/javacode |sed -e s/^\[[a-zA-Z0-9\/]\+\/\([^\/]\+\)$/\1/g echo /home/whuang/javacode |sed -e s/^\/[a-zA-Z0-9\/]\+\/\([^\/]\+\)$/\1/g echo [/home/whuang/javacode] |sed -e s/^\[[a-zA-Z0-9\/]\+\/\([^\/]\+\)]$/\1/g echo [\\home\\whuang\\javacode] |sed -e s/^\[[a-zA-Z0-9\\]\+\\\([a-z]\+\)]$/\1/g echo [\home\whuang\javacode] |sed -e s/^\[[a-zA-Z0-9\\]\+\\\([a-z]\+\)]$/\1/g echo [//home//whuang//javacode] |sed -e s/^\[[a-zA-Z0-9\/]\+\/\([a-z
显示全部