shell编程基础知识2

1、一维数组

  定义:A={test1 test2 test3}

  引用:echo ${A[0]} 表示引用第一个数组变量 echo ${A[1]} 表示引用第二个数组变量

  显示数据参数:echo ${A[@]}  显示参数个数 echo ${#A[@]}

  替换数组元素test2换成test5 ->echo ${A[@]/tets2/test5}

2、sed命令

  1)sed 's/192.10/192.168/g' test.txt  ->预修改test.txt中192.10变成192.168,但是test.txt依旧是192.10,只是预替换。

     其中格式为's/old/new/g',格式中s表示找到全部的old。真正替换为sed -i 's/192.10/192.168/g' test.txt。

  2)sed 's/^/&A/g' test.txt 表示在test.txt中每一行首添加A,其中^表示行首,&表示添加,$表示行尾。

  3)sed '/hdc/a 520' test.txt 表示在text.txt中的hdc后添加一行520。

     sed '/hdc/i 520' test.txt 表示在text.txt中的hdc前添加一行520。

  4)sed -n '/hdc/p' test.txt 表示打印hdc所在的行,其中n表示打印,p表示输出print。

     sed -n '1p' test.txt 打印第一行。

     sed -n '1,2p' test.txt 打印第一,二行。

3、grep命令

  grep "^10" test.txt 在当前目录中的test.txt文件中查找以10开头的行

  grep "$11" test.txt 在当前目录中的test.txt文件中查找以11结尾的行

  cat test.txt | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" 匹配ip地址如172.168.25.3

  egrep "hdc|123" test.txt 在当前目录中的test.txt文件中查找hdc或者123的行

4、awk命令

  cat /etc/passwd | awk -F: '{print $1}' 其中-F:表示以:来切割(区分列)

  ifconfig eth1 | grep "Bcast"  | awk '{print $2}'

  提取网卡eth1中的IP地址:ifconfig eth1 | grep "Bcast" | awk '{print $2}' | sed 's/addr://g'

              ifconfig eth1 | grep "Bcast" | awk '{print $2}' | awk -F:'{print $2}'

5、find命令

  格式:find 目录 -name "test.txt" 后面可接命令

    find . -name "test.txt" 寻找当前目录中test.txt文件

    find . -maxdepth 1 -name "test.txt" 寻找当前目录中第一级目录的test.txt文件     

   

    find -size +20 寻找大小大于20MB的文件

    

 

posted on 2019-01-02 17:05  hdc520  阅读(142)  评论(0编辑  收藏  举报

导航