shell编程笔记二

原创 2006年05月20日 13:43:00
深入讨论awk
  条件操作符
    <
    >=
    <=
    ==
    !=
    ~
    !~
  逻辑操作符
    &&   and
    ||   or
    !    not
    awk '{if ($4~/^/[17//May//2006/) print $0}' log.txt |wc -l
    awk '{if ($1!~/^218/.98/.157/.105/) print $0} log.txt' |wc -l
  awk的内置变量
    ARGC    //命令行参数个数
    ARGV    //命令行参数排列,数组使用形式ARGV[]
    ENVIRON  //支持队列中环境变量的使用,在awk中取得环境变量的值,使用形式ENVIRON["变量"]
    FILENAME  //awk浏览的文件名
    FNR    //浏览文件的记录数
    FS     //设置输入域分隔符,等价于命令行 -F选项
    NF     //浏览记录的域个数
    NR     //已经读出的记录数
    OFS    //输出域分隔符
    ORS    //输出记录分隔符
    RS     //控制记录分隔符
      awk -F '+' '{print NR,NF,ENVIRON["USER"],ARGC,ARGV[0]$0}' hello   //输出结果如下
         1 2 root 2 awk lskdfsdfi + sdfasdfsdf
         2 2 root 2 awk adf +sdfasdf
         3 2 root 2 awk asdf+safsdf
         4 2 root 2 awk as+asdfasdf
         5 4 root 2 awk df+sfasdf+asfas+afsadfs
  字符串函数
    gsub(r,s)    //在整个$0中用s替代r
    gsub(r,s,t)  //在整个t中用s替代r
    index(s,t)   //返回s中字符串t的第一次出现位置
    length(s)    //返回s长度
    match(s,r)   //测试s是否包含匹配r的字符串
    split(s,a,fs)  //用fs上将s分成序列a
    sprint(fmt,exp)  //返回经fmt格式化后的exp
    sub(r,s)     //用$0中最左边最长的子串替代s
    substr(s,p)  //返回字符串s中从p开始的后部分
    substr(s,p,n)   //返回字符串s中从p开始长度为n的后缀部分
      awk -F '#' '{if (gsub("s","S")) print $0}' hello.txt  //查找hello.txt文档用大写的S替换小写的s
      awk -F '#' '{if (gsub("s","S",$2)) print $0}' hello.txt  //查找每一行的第二列用S替换s
      awk -F '#' '{print index($2,"e")}' text.txt   //查找第二个域中每条记录内e第一次出现的位置
  printf修饰符
    %c     //ASCⅡ字符
    %d     //整数
    %f     //浮点数
    %e     //浮点数,以科学技术法表示
    %g     //新行
    %o     //八进制数
    %s     //字符串
    %x     //十六进制数
      awk -F '#' '{printf "%c",$1}' hello.txt
      awk -F '#' '{printf "%c/t%d/n",$1,$2}' hello.txt
  awk数组
    awk 'BEGIN{print split("as#bs#123",array,"#")}' //创建包含3个元素的数组arry,以#号分隔
    awk 'BEGIN{print split("as#bs#123",array,"#");print array[1]}'  //打印数组中的第1个元素
  输入重定向
    file
              被重定向的文档
    file
  信号的捕捉   //示例见advshellscript2.sh
    trap "name" signal(s)   //name通常为一个函数,用来处理捕捉到的信号;signal为捕捉到的一个或多个信号
    trap "hello" 2     //捕捉编号为2的信号,并把信号发送给hello函数进行处理
  向messages发送信息
    logger -p 1 -i "hi nihao"          //向messages发送等级为1,内容为"hi nihao"的记录
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《Linux Shell编程学习笔记之二》:特殊变量(\$*和\$@的区别)、命令替换和变量替换

《Linux Shell编程学习笔记之二》:特殊变量($*和$@的区别)、命令替换和变量替换特殊变量一般变量比较简单哈,与Java、C/C++不一样的地方在于不需要定义,直接使用即可。例如:#!/bi...

嵌入式开发之linux基础第七天学习笔记 shell脚本编程(二)

linux基础第七天笔记 SHELL脚本编程(二) 语句: 具有特殊功能的语句 输入语句:read 输出语句:echo 控制语句:tput 测试语句:test 表达式     测试表达式的正确与否 ...

学习shell编程笔记(二)

Shell特殊变量 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传...

梳理shell编程遗忘的知识点笔记(二)

数组变量: 该特点不适合ksh. =======================================================================...

shell 编程学习笔记(二)

shell 编程学习笔记(二) shell 的结构: shell由一堆api函数和一些com接口组成, 但它们提供了不一样的功能, 通过api你可以访问shell的基本功能, 而通...

学习笔记-基础Shell编程

  • 2015-12-14 16:58
  • 480KB
  • 下载

Linux c==读书笔记第10章shell编程(3)

shell程序的变量和参数shell的功能:说明和使用变量 【对shell来说,所有变量的取值都是一个字符串,采用$var的形式来引用var的变量的值】 shell定义的环境变量 环境变量:和系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)