Linux常用命令(六)

    xiaoxiao2023-11-03  167

    sort命令

    sed命令

    总结:

    sed是一个非交互式的文本编辑工具,通常在sell脚本中使用;sed每次去处理文件的时候都会将内容拿到一个临时缓冲区(模式空间)中,每次处理一行,就会输出到屏幕上。之后将缓存区中的内容清除,再去读取新的行内容;不支持将修改后的文件内容直接写入源文件中,是系统本身的问题。如果想要修改源文件,可以使用-i的选项,也可以多次使用数据流重定向来解决;因为其本身是一个逐行处理,但是某些需求会和sed本身工作方式有冲突,比如只想替换某行中的内容,就需要使用"ns/word1/word2/g",某几行可以使用"n1,n2s/word1/word2/g"(n1,n2表示第n1到n2行)。还有另一种可能,某一行中存在多个相同字符,就需要使用"s/word1/word2/n";多条数据应用,sed 1s/o/*/1;1s/o/*/1,源内容为"hello teduhadoop",表示替换第一行中的前两个o。为什么第二条中的结尾也写成1?因为此语句是两个应用动作,第一条语句执行完之后,原文中的第一个"o"已经修改为"*"。

    cut命令

    [root@node01 ~]# sort demo.txt 192.168.1.1 192.168.1.3.4 192.168.1.4.5.6.7 192.168.1.7.8.9 [root@node01 ~]# sort demo.txt |grep -o .$ 1 4 7 9 [root@node01 ~]#

    可以使用重定向将结果输入到demo文件中,-o代表的是只输出匹配的选项,.$是正则表达式,表示最后一位单字符

    history

    shell高级

    案例1:

    shell脚本参数

    [root@node01 ~]# sh test1.sh 1 2 3 4 this script $* is:1 2 3 4 this script $@ is:1 2 3 4 [root@node01 ~]#

    执行结果是一样的 编写test2.sh脚本:

    #!/bin/bash #script name:test2.sh for i in "$*";do echo $1 done echo "================" for i in "$@";do echo $i done exit 0

    执行结果:

    [root@node01 ~]# sh test2.sh 1 2 3 4 1 ================ 1 2 3 4 [root@node01 ~]#

    条件判断语句

    if判断

    例如:

    #!/bin/bash #判断两个数字的大小 a=$1 b=$2 if [ $a -gt $b ];then echo "YES! $a>$b" fi if [ $a -le $b ] then echo "YES $a<=$b" fi

    执行:

    [root@node01 ~]# sh test3.sh 1 2 YES 1<=2

    case判断

    最新回复(0)