sed 命令的使用及shell判断语句

来源:互联网 发布:c语言获取系统当前时间 编辑:程序博客网 时间:2024/05/14 16:12

sed 命令的使用及shell判断语句

      sed—>stream editor 行编辑器,sed [option] ‘address command’ filename

      address 有以下几种  n   eg ‘3d’ 删除第三行

                 n1,n2  eg ‘3,7d’ 删除第三行到第七行

                 /regexp/    eg ‘/^com/d’ 删除以com开头的行

                 1,/regexp/ eg ‘1,/regexp/d 删除从第一行道匹配到的第一行

                 0,/regexp/ eg ‘0,/regexp/d 删除从第一行道匹配到的最后一行

                 1~2 eg ‘1~2d’ 删除1,3,57……奇数行

                 2~2 eg ‘2~2’  删除2,4,6,8……偶数行

                 $               匹配到文件的最后一行

                 n,+m eg ’10,+9’   删除从第十行的后九行

      command有以下几种

                 d   删除

                 s   替换

                 p   打印(常与-n联合使用)

                 a   在当前行之后添加一行

                 i    在当前行之前添加一行

      option 选项

                 -n  只显示匹配到的行

                 -e  添加多个命令

                 -f 后面接文件(内容为sed sed的内容,但不加单引号)

                 -r   使用扩展正侧表达式

           sed应用示例:

                 sed –e [address command] –e [address command] filename

                 sed –f filename

                 sed –n ‘1,3p’ filename 显示匹配到的一到三行

                 sed ‘/first/,/second/d’ filename 删除含有firstsecond的行

                 sed ‘n1,n2s/A/a/’ filename filenamen1n2行的A替换成a

 

      命令执行完的状态用$?表示 如果执行成功其值为0,否则为1~255

      linux的短路操作符 ||(或) &&(与)

      shell中条件测试:

                      1    test expression

                       2   [ expression ]         方括号与表达式中有空格

                       3   [[ expression ]]

           整数的测试:

                      1  -gt       大于

                      2    -ge      大于等于

                      3    -lt        小于

                      4    -le       小于等于

                      5   -eq      等于

                      6    -ne      不等于

           字符串测试:

                      1  ===           比较字符串

                      2  > >= < <=     

                      3    -n        是否为空

                      4    -z        是否存在

           文件测试:

                      1    -d        是否为目录

                      2    -e        是否存在

                      3    -f         是否是普通文件

                      4    -L-h)文件是否为连接文件

                      5    -r –w –x 对文件的权限判断

                      6    -O -G 同是对文件权限判断(属主,属组)

判断语句

              if     if  statement;then           if statement;then           if statement;then

                            执行语句                          执行语句                          执行语句

                     fi                                        else                                    elif statement;then

                                                                      执行语句                          执行语句

                                                                                                         else

                                                                                                                执行语句

              while/until  while 测试条件;do

                                          执行语句

                                          done

              注意while的测试条件一定是可变条件否则会死循环。

      bash –n filename 测试脚本的语法错误

      bash –x filename 测试脚本的逻辑错误

      脚本中引用传进来的参数:直接用$1 $2 $3表示第一个,第二个,第三个参数,如果超过9个用${n}引用

      读取数据用read 命令:

           read A 后面输入的内容赋给A

           read A B 读入的内容按空格分别赋给AB。如有多个空格,第一个空格前的内容给A,剩下的都给B

 

 

原创粉丝点击