脚本编程语言

在第一行指定程序解析器,如:

  • #! /bin/csh -f
  • #! /bin/csh -  表示没有选项,避免欺骗攻击

此行要求:

  • 最好不要超过64个字符
  • 别在选项后面放置任何空白
  • 使用完整路径


perl


python


ruby



字符功能grepegrepsedawk
*匹配0或多个字符YYYY
.任意一个字符YYY(不包括换行符)Y
^指明以 ^后字符串 开头的行YYYY
$指明以 $前字符串 结尾的行YYYY
[]任意字符YYYY
[^]除中括号之外的字符YYYY
\解除特殊意义YYYY
\>到一个字的最后面YYYY
\<到一个字的最前面YYYY
\(…\)将匹配的字记录起来,最多9个,使用\1到\9来访问YYYY
x\{m\}讲字符x重复m次YYYY
x\{m,\}重复至少m次YYYY
x\{m,n\}重复至少m次,且不大于n次YYYY
+匹配一个或多个前置字符NYNY
?0个或1个前置字符NYNY
a | b匹配a或bNYNY
()组合NYNY
&保持查找到的字符串NNYY
~
!~
模糊匹配NNNY


shell

        分bourne shell(AT&T shell,即linux下的bash),C shell(Berkeley shell,即linux下的TCSH),korn shell(bash的超集合)

        ctrl + D 文件结尾

        echo 

              -n 不打印最后的回车换行符

        printf

              有的unix版本支持

        tr 转换字符

             -d 'x'  删除字符x

             -s 浓缩字符,合并相同字符

        /dev/tty 

        /dev/null

        参数

             大于9,使用如${11}方式

        set  -x 打开跟踪功能;或者执行shell是加-x开关;

        set +x 关闭跟踪功能

        locale ?


grep:

  • egrep,扩展了grep,支持较多的RE特殊字符(regular expression)相当于grep -E。
  • fgrep,又叫fast grep或fixed grep,特殊字符只代表自己!相当于grep -F。
  • grep wordpattern filename1 filename2 ...
  • 找到了,返回0;没找到pattern,返回1;没找到file,返回2。
  • -n 打印行号
  • -c 匹配行的数量,一行内多次匹配只算一行
  • -i 忽略大小写
  • -l 只显示文件名
  • -h 不显示文件名
  • -v 倒序查找只显示不匹配的行
  • -w 只是单词
  • -A num   打印匹配位置之后指定行内的数据
  • -B num   打印匹配位置之前指定行内的数据
  • -C num   以匹配位置为中心,打印指定行上下内的数据
  • -m num  匹配的个数,只打印这些个
  • -r              递归

如    grep maxNum -r -n -i -C 5 ./

sed:

  • sed ‘command’ filename
  • 不修改原文件
  • 如果多个命令,可以用大括号将命令括起来,命令间用分号分割;如sed '{n;q;}' filename
  • -n 只显示匹配的行,默认的其他打印不再显示。(跳过预设的输出)
  • -e 多个编辑动作
  • -f 文件名
  • -v 查版本
  • command保护匹配和命令,其中命令分:
    • a\  附加
    • c  
    • d   删除
    • i    插入
    • h  复制到缓存器
    • H  附加到缓存器
    • g  从缓存器取出复制到样式空间,覆盖原有内容
    • G 从缓存器取出复制到样式空间,附加到原有内容
    • l   列出非打印字符
    • p  打印
    • n  下一行
    • q  退出sed
    • r   读一个文件
    • !   取反
    • w 写出到一个文件
    • x  交换缓冲区和样式空间的内容
    • y  转换一个字符到另一个字符
    • s 替换动作,后接g做全局替换;接p打印;可以接各种字符,如#分割,平常使用/,但有时候会有日期使用/,此时使用#。
awk:
  • 分awk,nawk,gawk几个版本
  • awk 'pattern {action}' filename或者管道导入替代filename
  • -f 文件名
  • -F 定义分隔符,可以有多个,如-F'[ \t]'
  • -v var=val
  • action 包括:
    • print  直接接变量,如{print $1};
    • printf 带格式变量,如{printf “%15d", $1}

    • $0,全行
    • NR,行个数
    • FNR,文件所拥有记录数
    • NF,域个数
    • OFMT,数字的输出格式
    • FS,输入域分隔符,预设值为空格
    • OFS,输出域分隔符
    • ORS,输出记录分隔符 如{OFS=":";ORS="\n\n";}
    • RS,输入记录分隔符 ?

    • BEGIN
    • END

    • 输出转向>和>>
    • 输入转向getline,从标准输入,管道,或文件输入。
  • 对于字符的双引号是必须的,否则被识别为变量


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值