shell脚本8-16

1、基于C语言格式的for语句写法:

for((i=0;i<10;i++));do【for(初始条件;条件判断语句;值变化语句);do】

  循环体

done

for循环的优点:不容易进入死循环

2、while语句的格式:

初始值

While 条件;do

  循环体

  Let i++(使初始值变化)

Done

练习:写一个for循环遍历本网段中所有的up的电脑

#!/bin/bash

declare -i sum=0
for i in $(seq 1 100);do
        ping -c 1 -w 1 10.6.12.$i &> /dev/null
        if [ $? -eq 0 ];then
                let sum++
                echo "10.6.12.$i是通的"
        else
                echo "10.6.12.$i是不通的"
        fi
done
echo "总共有$sum台电脑在线"

求1-100的偶数和

#!/bin/bash

for i in $(seq 0 2 100);do
        let sum+=$i
        echo $i
done
echo $sum

 打印九九乘法表

for i in {1..9};do
        for ((j=1;j<=$i;j++));do
                echo -n -e "$i*$j=$(($i*$j))\t"
        done
        echo
done

Linux文本处理三剑客之sed命令

1、sed命令作为流编辑器,对文本以行为单位进行编辑,但是sed命令只会编辑文件,不会改变源文件的内容。

2、sed的工作原理:指定一个文本文件依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、    打印、修改、保存等)

3、sed用法:sed  [参数] "sed自己独立的用法格式的语句" [文本文件]

4、常见选项:-n:取消默认输出                    

        -r:指定使用扩展的正则表达式

        -e:后面加脚本(如for,while等命令)

        -f:指定脚本文件

        -l:指定文本的换行长度

        -i:修改文件内容

5、地址定界方式:1、直接匹配数值 (sed -n‘5~7p’)

         2、步长 (sed -n‘1~3p’文件)

         3、$ 指定行尾 (sed -n‘10,$p’文件)

         4、正则表达式 (sed -n ‘/k\{5,\},$p’ abc)【正则写在前面就没有问题,写在后面就有问题】

         5、0,addr (addr可以为数字/$/正则表达式)  

         6、addr +n (配置到addr行到addr后n行)

6、常见命令:p:print  打印(默认在屏幕上显示出来)建议和-n一起使用

      c:替换  例:sed “/aaa/c \A” a(a是文件名)  

        d:删除行  例:sed “/aaa/d” a 

                sed “1,3d” a

        n N:读取/添加  模式匹配到的行的下一行的内容,再对其进行操作

        w:保存文件内容到一个新的文件   例:Sed “/k/w tmp/aabbcc” abc

        *s*:文本内容替换,默认替换模式空间匹配到的第一项

posted on 2019-08-22 21:21  cqyyyyy  阅读(123)  评论(0编辑  收藏  举报