一、awk
sed以行为单位处理文件,awk不仅能以行为单位还能以列为单位处理文件。
awk缺省的行分隔符是换行符,缺省的列分隔符是连续的空格和tab,而且行分隔符和列分隔符都可以重定义,比如/ect/passwd文件的每一行有若干字段以:分隔,则重新定义awk的分隔符为:并可以以列处理这个文件。
awk可以像C语言一样支持分支和循环结构,基本语法和sed类似。
  • awk命令基本基本形式为:
awk option 'script'  file1 file2
          awk option -f scriptfile file1 file 2
  • 编辑命令的格式为:
/pattern/{action}          其中pattern为正则表达式,action为一系列操作。
awk程序一行一行读出待处理文件,若某行与pattern匹配,或满足condition条件,则执行相应的action,若一条awk命令只有action部分,则action作用于待处理文件的每一行。
2.从栗子中学习

栗1

  • 自动变量$0、$1、$2分别表示当前行、第一列、第二列
  • printf是一条命令
  • 读到的一行数据称一条记录,每一条记录被列分隔符分成多个域
栗2
  • 支持脚本的动作判断
栗3  统计空行数与以E结尾的产品数

  • 对于每个待处理的文件,BEGIN后面的action在处理整个文件之间执行一次,后面的END后面的action在文件处理完成后执行一次
  • awk可以像C语言一样使用变量,不过不需要定义
  • BEGIN和END可写可不写,但是位置一定在最开头和最结尾,且只执行一次
栗4  awk搜索

  • NF即匹配最后一列,$(NF-1)表示最后一列的前一行
3、awk调用方式
①命令行模式
awk [-F field-separator] 'commands' input-file
其中,commands是真正的awk命令,[-F域分隔符可选],input-file是待处理文件
②shell脚本模式
将所有的awk命令写入文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行。
#!/bin/awk -f    相当于shell脚本的#!/bin/sh
解释时和shell脚本的步骤一样,先加权限,再运行。
4、awk调用正则表达式方法
  • awk语句
    • awk ‘/REG/{action}’ action为正则表达式
例:awk '/^a.*n$/{print $0;}' file  在file里匹配以a开头、以n结尾的任意字符序列
  • awk正则运算语句
    • awk '{if ($0 ~ /^a.*n$/){print $0;}}' file   同上,不过里面加上了语句
  • awk内置使用正则表达式函数
    • gsub(Ere,Repl,[in])
    • sub(Ere,Repl,[In])
    • match(String,Ere)
    • split(String,A,[Ere])
例:awk ‘{if (match($0,  "^a.*n$")){print $0;}}' file 
5.awk中的printf和print
awk中同时提供print和printf两种打印输出语句。
其中print函数的参数可以是变量、数值或者字符串。字符必须用双引号引用,参数用逗号分隔,若没有逗号,参数就串联在一起无法区分。这里,逗号的作用和文件的分隔符是一样的。
printf函数,语法和c中的printf相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。
6、awk中的语句
  • 循环语句
    • while
    • do/while
    • for
    • break
  • 条件判断
    • if
    • if/else if
基本和c中风格类似
二、cut
cut负责在文件中剪切数据,cut以行为处理对象
1、cut命令的三个定位方法
  • 字节  -b

一般汉字的byte大小不确定
  • 字符  -c

其中中文字符和空格都算一个字符
  • 域  -f
-d指定域风格符,-f指定要剪出哪几个域
三、sort
sort将文件的每一行作为一个单位,相互比较,比较的原则是从首字符向后,依次按ASKII码直接进行比较,再肾虚输出
  • sort -u  在输出行中去除重复行
  • sort -r  sort默认升序,加r表示降序
  • sort -o  将排序好的写回源文件
  • sort -n  以数值来排序而不是以字符来排序
  • -t -k选项   后面可以设置间隔符,-k后面指定列数,以某一列来排序
  • 其他

四、uniq
读取输入文件,并比较相邻的行,若相邻的行有重复则删去。一般都是先排好序,将相同的放到一起在进行删去重复。
此外,该命令将加工后的结果写到输出文件中,输入的文件和输出的文件必须不同,否则将会丢失数据 。

awk、cut、sort和uniq相关推荐

  1. Shell 编程之正则表达式与文本处理器--(grep,egrep 与文本处理器-sed、awk、sort、uniq、tr)

    文章目录 一.正则表达式 1.1 正则表达式概述 1.1.1 正则表达式的定义 1.1.2 正则表达式用途 1.2 基础正则表达式 1.3 基础正则表达式:grep命令 1.3.1 查找特定字符 1. ...

  2. shell编程之正则表达式与总结(grep,egrep)与文件处理器和总结(sed,awk,sort,uniq)

    文章目录 前言 一:基础正则表达式 1.1:正则表达式的定义 1.2:正则表达式用途 1.3:基础正则表达式 1.4:基础正则表达式:grep命令 1.4.1:查找特定字符 1.4.2:利用中括号&q ...

  3. 使用awk,sort和uniq从ATS访问日志中统计出异常链接域名的次数排名

    在运维过程中,发现portal中出现流量异常曲线, 就从排查ATS的访问日志中的异常域名开始,下面是我截获的对应时段的访问日志截图 发现里面有502,403等异常响应,我们将这段访问日志文件记为exc ...

  4. 65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令

    liunx的特殊符号 代表字母或者数字 多个 ? 任意一个字符 "#" 注释 \ 脱义字符 | 管道符 1.* 代表任意个任意字符或者数字 [root@localhost /]# ...

  5. 几个常用的文本处理shell 命令:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk

    内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...

  6. linux——编写Shell脚本常用命令:diff、patch、cut、sort、uniq、、||、test、tr

    diff 和 patch 命令帮助:diff –help | patch –help diff命令在最简单的情况下,比较给定的两个文件的不同.如果使用"-"代替"文件&q ...

  7. Shell的sort、uniq、tr、cut、命令和 正则表达式

    sort.uniq.tr.cut.正则表达式 一.sort命令 二.uniq命令 三.tr命令 四.cut命令 五.正则表达式 1.基础正则表达式 2.扩展正则表达式 一.sort命令 以行为单位对文 ...

  8. shell脚本——grep cut sort uniq tee diff paster tr等小工具的使用方法

    shell脚本的一些小工具的使用方法 grep 语法和选项 实例 cut 语法和选项 实例 sort 语法和选项 实例 uniq 语法和选项 实例 tee 语法和选项 实例 diff 语法和选项 实例 ...

  9. shell正则表达式(cut、sort、uniq、tr、paste)小工具

    目录 一.正则表达式 二.基础正则表达式 三.扩展正则表达式元字符 四.grep命令 1.统计包含某个字符的文本行的行数 2. 不区分大小写查找the所有的行 3.查找特定集合字符 4.查找连续字符范 ...

  10. Shell之常用命令(diff、path、cut、sort、uniq、tr、path)

    Shell之常用命令(diff.cut.sort.uniq.tr.path) diff命令 作用:比较两个文件或目录的不同 diff [options] target1 target2 比较结果读取方 ...

最新文章

  1. 关于交换机SVI(转)
  2. 澳洲专升硕计算机专业,澳洲计算机专升硕-纽卡斯尔大学
  3. js倒计时代码最简单的_32个史上最有用的js代码
  4. 应该增加黑样本还是白样本呢
  5. Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误)
  6. WCHAR,CHAR,TCHAR的区别
  7. linux du -hd1查看文件及目录所占磁盘空间
  8. MCN是啥?了解一下这5个互联网热词
  9. JavaEE实战班第三天
  10. MyBatis配置项--配置环境(environments)
  11. Oracle 11g的下载与安装
  12. 错过等一年!物流与交通的先锋碰撞,点击进入这场大佬云集的学术盛宴
  13. x3650服务器引导盘制作,IBM X System ServerGuide 8.41 服务器 系统安装 引导盘图文教程...
  14. 03_sourceinsight护眼背景
  15. (附源码)计算机毕业设计SSM基于ETC用户的自驾游推荐系统
  16. matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形
  17. OpenCv-C++-KAZE(AKAZE)局部特征检测(一)
  18. nc: command not found完美解决(linux配置nc命令)
  19. 委托(C# 编程指南)
  20. IDEA + github pull request + teamcity运用

热门文章

  1. iOS中把故事板中视功能和美工结合在1起
  2. 韩钰带你走进电商世界之如何成功运营一家淘宝C店详细方案
  3. 深度长文:新iPhoneX凭什么卖这么贵?
  4. 公信宝CEO黄敏强:区块链让数据所有权回归大众
  5. Linux面试题【常见】
  6. [BZOJ4180] 字符串计数
  7. Oracle命令行工具基本操作及SQL 命令
  8. 彩票走势图xcode源码
  9. 第一部分 利用opencv基于hsv颜色的目标提取效果和python代码
  10. 基于matlab的多径信道的仿真