美文网首页
shell入门(二)

shell入门(二)

作者: b470b9fc7145 | 来源:发表于2017-09-14 18:54 被阅读16次

    先写一个开头,省的以后忘记写

    逻辑运算

    if else

    a=10
    b=20
    if [ $a == $b ]
    then
       echo "a 等于 b"
    elif [ $a -gt $b ]
    then
       echo "a 大于 b"
    elif [ $a -lt $b ]
    then
       echo "a 小于 b"
    else
       echo "没有符合的条件"
    fi
    

    for

    for loop in 1 2 3 4 5
    do
        echo "The value is: $loop"
    done
    

    while

    #!/bin/sh
    int=1
    while(( $int<=5 ))
    do
        echo $int
        let "int++"
    done
    

    文件操作

    n > file    将文件描述符为 n 的文件重定向到 file。
    n >> file   将文件描述符为 n 的文件以追加的方式重定向到 file。
    
    echo "It is a test" > myfile
    

    sed查找和替换

    sed 可删除(delete)、改变(change)、添加(append)、插入(insert)、合、交换文件中的资料行,或读入其它档的资料到文>件中,也可替换(substuite)它们其中的字串、或转换(tranfer)其中的字母等等。例如将文件中的连续空白行删成一行、"local"字串替换成"remote"、"t"字母转换成"T"、将第 10 行资料与第 11 资料合等。
    总合上述所言,当 sed 由标准输入读入一行资料并放入 pattern space 时,sed 依照 sed script 的编辑指令逐一对 pattern space 内的资料执行编辑之後,再由 pattern space 内的结果送到标准输出,接着再将下一行资料读入。如此重执行上述动作,直至读完所有资料行为止。

    小结,记住:

    (1)sed 总是以行对输入进行处理
    (2)sed 处理的不是原文件而是原文件的拷贝

    主要参数:

    -e:执行命令行中的指令,例如:sed -e 'command' file(s)
    -f:执行一个 sed 脚本文件中的指令,例如: sed -f scriptfile file(s)
    -i:与-e的区别在于:当使用-e 时,sed 执行指令并不会修改原输入文件的内容,只会显示在 bash 中,而使用-i 选项时,sed 执行的指令会直接修改原输入文件。
    -n:读取下一行到 pattern space。

    参考文档

    shell 学习第十天---sed 查找与替换

    相关文章

      网友评论

          本文标题:shell入门(二)

          本文链接:https://www.haomeiwen.com/subject/kfzdsxtx.html