最近研究UNIX收获:(高手免进,挺基础的)

26 篇文章 0 订阅

最近研究UNIX收获:
1:截取一个特殊字符以后的:
   awk -F'#' '{print $NF}' jobname > rpt
  
2:截取路径下的文件名(文件名可能会有引号)
例:SCRIPTNAME "/export/opt/bank_scripts/ALSBSCORE.sh"
       可以参考:awk '{print $2}' file | basename (版本不同可能有问题)
                           awk '{print $2}' file | basename | tr -d '"'
                           cat file | awk -F/ '{print $NF}' | tr -d '"' (查找最后一个/后的字段)
                          
3:顺序查找文件:
     cat file | while read line
     do
        NAME=$line
        ...
     done
    
4根据变量来对文件进行匹配查找
   awk '/'$parameter'/{print}' file (当截取有空格符的时候回报错)
   awk '/'"$parameter"'/{print}' file (比上面的优化)
  如果不是变量,查找含字段的情况:
  awk '/parameter/' file
  grep 'parameter' file
  sed -n '/parameter/'p file
 
5   如果是根据来打印一行:
   sed -n "$row"p file
  
6  打印下一行的行号:
   awk '/'parameter'/{print(NR+1)}' file
   如果是打印本行的行号:awk '/'parameter'/{print(NR)}' file
   当然打印行好还有:sed -n -e '/parameter/p' -e '/parameter/=' file
  
7:把文件中的日期取出来:
  文件:AT 0300 + 1 DAYS UNTIL 0500 + 1 DAYS
              AT 0100 UNTIL 0600 + 1 DAYS
   思想:1:把 + 1 DAYS 先去掉 : cat file | sed "s/+ 1 DAYS//g" 
               2:把数值取出来             sed "s/[^0-9]*//g
               综上所述:cat file | sed "s/+ 1 DAYS//g" | sed "s/[^0-9]*//g"
               可以比较看一下结果:sed "s/[0-9]*//g 和sed "s/[^0-9]*//g
                                                       sed "s/[^0-9]*//g 和sed "s/[^0-5]*//g

8:关于取得变量的比较:
   要用[ ] 并且中间要有空格 和引号:例:if [ "$a" -eq "$b" ]
  
9:把目标行PAUSU_ALS_BK_CP_MV_FILE_IMIR的以上的最近的ON RUNCYCLE 打印出来了!
   awk '/ON RUNCYCLE/,/PAUSU_ALS_BK_CP_MV_FILE_IMIR/' file | head -1
   (这可以为group check 服务)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值