$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

sed [options] ‘AddressCommand’ file…
-n:静默模式,不再默认显示模式空间中的内容

Address:

  1. StartLine,EndLine

比如1,100
$:最后一行

  1. /RegExp/

/^root/

  1. /pattern1/,/pattern2/

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

  1. LineNumber

指定的行

  1. StartLine,+N

从startLine开始,向后的N行

Command:
d:删除符合条件的行
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为string
i \string:在指定的行前面添加新行,内容为string

使用脚本选项及组合条件测试

整数测试:
-le
-lt
-ge
-gt
-eq
-ne
字符测试
==
!=
>
<
-n
-z
文件测试
-e
-f
-d
-r
-w
-x