码迷,mamicode.com
首页 > 系统相关 > 详细

shell编程详解(二)

时间:2016-07-16 07:10:50      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:linux sed

文件测试:

-e file:测试文件是否存在

-f file:测试文件是否为普通文件

-d file:测试指定路径是否为路径

-r file:测试当前用户对指定文件是否有读权限

-w file:测试当前用户对指定文件是否有写权限

-x file:测试当前用户对指定文件是否有执行权限


测试shell是否有语法错误

bash -n xx.sh:能够见到判断脚本语法是否有错误

bash -x xx.sh:单步执行,用于脚本调试


定义脚本退出状态码:

exit:退出脚本

exit n: 0表示正常退出,1-255表示错误退出

如果脚本没有明确定义退出状态码,那么最后执行的一条命令的退出码即为脚本的退出状态码


特殊变量:

$?:上一个命令退出状态

$#:参数的个数

$*:参数列表

$@:参数列表


位置变量:shift


sed用法

sed:Stream Editor,行编辑器,默认不编辑原文件,仅对模式空间中的数据处理

sed [option] ‘AddressConmand‘ file...

-n:静态模式,不再默认显示模式空间的内容

-i:直接修改原文件

-e script -e script:可以同时执行多个脚本

-f sedfile:可以将多个脚本放在一个里面

sed -f sedfile file

-r:表示使用正则表达式

Adress:

1、StartLine,EndLine

比如:1,100

$:表示最后一行

2、/REGEXP/

比如:/^root/

3、/pattern1/,/pattern2/

第一次被pattern1匹配到的行开始,至第一杯pattern2匹配到的行结束,这中间的所有行

4、LineNumber 指定的行

5、StartLine,+N

从Startline开始,向后的N行

Command:

d:删除符合条件的行

p:显示符合条件的行

a \string:在指定的行后面追加新行,内容为string

\n:可以用于换行

i \string:在指定的行前面添加新行,内容为string

r FILE:将指定的文件的内容添加至符合条件的行处

w FILE:将地址指定的范围内的行另存至指定的文件中

s/pattern/string/:查找并替换,默认只替换每行中第一匹配被模式匹配到的字符串

加修饰符:

g:全局替换

i:忽略大小写

s///:也可以用s###,s@@@

&:引用模式匹配整个串

例如:

l..e:like ->liker

love ->lover

sed ‘s#\(l..e\)#&r#g‘ xx.txt 或者 sed ‘s#\(l..e\)#\1r#g‘ xx.txt


本文出自 “忘记过去” 博客,请务必保留此出处http://xujingbo.blog.51cto.com/4633099/1826847

shell编程详解(二)

标签:linux sed

原文地址:http://xujingbo.blog.51cto.com/4633099/1826847

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!