• awk连载9: awk数组的使用

    数据在awk里是很重要的一块,很多的操作比如文件的合并,及做一些统计操作的时候都需要利用到数组。 正常情况下定义变量的时候,都是一个变量一个值,即 变量=值 这种格式,如果想要一个变量有多个值则需要数组来定义,比如定义数组aa有3个值xx,yy,zz。 这里该如何引用数组aa里的xx这个值?如何引用数组aa里yy这个值呢?我们先看如何来定义数组   假设有一个储物柜里存放的每个人的手机(每个手机称为”元素”),每个手机上都贴了一个标签(如上图用颜色标记的部分),记录的是张三的手机、王五的手机等。…

    awk 2020 年 2 月 5 日
  • awk连载8: awk循环控制语句

    awk连载8: awk循环控制语句, break continue next语句

    awk 2020 年 2 月 4 日
  • awk连载7: awk while循环

    语法: while(判断){操作} 如果判断成立,则执行{}里的操作,完了之后再回头到判断()里语句是否成立,如果不成立则跳出循环,如果还成立,则继续执行()里的操作。 先看aa.txt的内容: [root@vms63 ~]# cat aa.txt aaa 1 root 11111 bbb 2 ro2t 222 ddd aaa ccc 3 xxxx  r22t  dddd ddd 4 yyy  root 222 eee 5 aaa zzz [root@vms63 ~]# 如果在while的()里…

    awk 2020 年 1 月 17 日
  • awk连载6: awk for循环

    语法 for(变量初始值;变量的范围;变量增长){操作} 比如 for(i=1;i<=10;i++){操作}, 意思是i一开始为1,每次增长1,且小于10 这种循环可以用于对 行的每个字段进行循环,所以如果想找出每行中特定的字符,就可以用此循环。如下面的例子 dd.txt内容如下: [root@vms63 ~]# cat dd.txt aaa xxx /xy/x111.pl afaf /xy/x222.pl asssss aaaff ssss 111 333 aaa /xy/x23.pl …

    awk 2020 年 1 月 12 日
  • awk连载5: if判断

    在用awk执行操作时,有时我们需要先做个判断,再决定要不要执行相关的操作,这里的判断可以使用if语句来实现。 if判断的语法: if(判断1){语句1} else if(判断2){语句2} else if(判断3){语句3} … else{语句n} 当awk对每行进行操作的时候,首先把这行的内容在if判断语句里过一遍,满足判断1,就执行语句1,后面的判断就不再执行了。如果判断1不满足,则进行判断2,依次类推知道把所有的判断都执行完。如果所有的判断都不满足,则执行else里的语句。 在awk里…

    awk 2020 年 1 月 8 日
  • awk连载4: awk里的变量

    FS 表示分隔符,前面说过了 OFS 输出的分隔符,默认是空格 前面提了一下,在print语句里如果使用逗号做分隔符的话,输出时默认是以空格分隔开   这个输出的分隔符是由OFS来决定,如果想修改此分隔符只要定义OFS变量即可,如下:   FILENAME FILENAME用于显示文件当前正在处理的文件名是什么。   这里NR表示行数,后面会单独讲解,这行的意思就是当处理到第一行的时候,就打印当前文件的名字。 NF 用于指明每行被分成的了几段 看下aa.txt的内容…

    awk 2020 年 1 月 7 日
  • awk连载3: awk里的BEGIN和END

    前面讲awk对一个文件进行处理的时候,是一行行的读取文件的。那么在awk真正对文件里的行进行循环之前,可以先做一些准备工作,这个准备工作就需要在BEGIN里做。 一般情况下,在BEGIN里用于打印一些标题,及设置一些变量。 格式: awk ‘BEGIN{操作}  条件{print 语句}’ file 这里先执行BEGIN里的操作,然后再对file进行循环,找到含有指定条件的行,进行print操作。 再看aa.txt的内容: [root@vms63 ~]…

    awk 2020 年 1 月 4 日
  • 如何找出磁盘使用率超过20%的分区?

    如何找出磁盘使用率超过20%的分区?一条命令即可 df -hT | egrep -v '(文件系统|loop)' | awk -F'[ %]+' 'strtonum($6) >= 20{print $1}'

    RHCE 2020 年 1 月 3 日
  • awk连载2:awk的操作符

    前面讲了,awk在一行内容里先匹配是否含有某关键字,然后再决定要不要对此行进行相关操作,awk ‘/关键字/{print $n}’。但是如果想判断,某个字段(awk对行进行分段)是否含有某个关键字,或者是否满足某个正则表达式表示的意思,才会进行相关操作。 ==和!=操作符的用法 awk ‘$N == “字符”{print操作}’ file 注意这里要找的字符要用双引号引起来,意思是只有第N部分的值等于指定的字符才会…

    awk 2020 年 1 月 1 日
  • awk连载1: awk的基本用法及原理

    awk是一款很强大的文本处理工具,他把所要处理的字符串 按行 读入到内存进行分段处理。默认情况下是以空格或者tab作为分隔符,对每个分段都分配一个名字,第1部分用$1表示,第2部分用$2表示以此类推,整行内容用$0表示,具体如下图: $1 $2 $3 … $N 如果想对哪部分进行操作的话,直接用$n(n是数字)指定就可以了,这里的的操作一般是指print。 awk的基本语法: awk ‘{print $n}’ 举例如下: 对于一个字符串 my last name is…

    awk 2019 年 12 月 30 日
  • [小贴士]sed替换:sed -i.bak -r ‘s/(.+_PW)=[0-9a-z]+/\1=redhat/g’ aa.txt

      使用packstack生成应答文件的时候,里面涉及到许多的密码:   现在想把这些密码统一改成redhat的话,可使用: sed -i.bak -r 's/(.+_PW)=[0-9a-z]+/\1=redhat/g' aa.txt 结果变成了:     讲解: sed的基本用法: sed 's/old/new/g' file   a.修改原文件的时候,同时备份一份出来,备…

    Shell 2017 年 2 月 28 日
  • sed awk第二讲:sed基本用法

    视频下载地址:http://pan.baidu.com/share/link?shareid=173949&uk=3742764079笔记下载地址: http://pan.baidu.com/share/link?shareid=174025&uk=3742764079现在预定三月份RHCE考试,赠送Linux集群课程,详情请见:http://item.taobao.com/item.htm?spm=a1z10.1.4-17895743242.27.8C3TGB&amp…

    视频汇总 2013 年 1 月 10 日
                                                                                                                                    RHCE9学习指南连载,点击阅读