语法:

awk '{command}' filename  多个命令以分号分隔。

awk 'BEGIN {command1} {command2} END{command3}'  注意:BEGIN ,END 需要大写

常用变量说明:

FS : 指定分隔符,默认是空格和tab 。 也可以简写 -F ";"

NR: 目前处理的是【第几行】数据 ,文件中的行标

NF: 每一行的列数(段、栏位)

例子1:

  1. # 以tab作为分隔符
  2. # print $ 表示打印所有列, $ 表示打印第一列 ,不写默认打印所有列
  3.  
  4. # 打印所有列,用 -F 指定分隔符 ,$
  5. awk -F "\t" '{print $0}' zss_test.txt
  6. # 打印所有列,用 -F 指定分隔符
  7. awk -F "\t" '{print }' zss_test.txt
  8. # 打印所有列,用 FS 指定分隔符
  9. awk 'FS=="\t"; {print $0}' zss_test.txt

打印结果1:

例子2:

  1. ##查看文件内容
  2. cat -n zss_test.txt
  3.  
  4. ##NR,NF使用
  5. awk 'FS=="\t"; {print $1 "\t rows:"NR "\t columns:"NF}' zss_test.txt
  6.  
  7. ##利用NF,打印最后一列
  8. awk -F "\t" '{print $NF}' zss_test.txt

打印结果2:

例子3:

  1. ##删除指定目录下的所有文件 慎用
  2.  
  3. ls -l|awk '{print "rm -fr " $9}'|sh

例子4:

  1. # 利用printf 格式化输出 %s 字符,%d 整数,%f 浮点 ;
  2. # %10s 右对齐,长度10,实际长度大于设置长度,按实际长度
  3. # %-10s 左对齐,其他同上
  4.  
  5. #打印文件内容
  6. cat -n kimbo_test.txt
  7.  
  8. #打印第二行之后的,列1,列4
  9. awk -F"|" 'NR>=2{print $1,$4}' kimbo_test.txt
  10. #打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1左对齐
  11. awk -F"|" 'NR>=2{printf "%-30s\t%5.2f\n",$1,$4;}' kimbo_test.txt
  12. #打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1右对齐
  13. awk -F"|" 'NR>=2{printf "%30s\t%5.2f\n",$1,$4;}' kimbo_test.txt
  14.  
  15. ##多个命令,可以分号分隔
  16. ## 打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1左对齐
  17. awk -F"|" 'NR>=2{printf "%-30s\t",$1}; NR>=2{printf "%5d\n", $4}' kimbo_test.txt

打印结果4:

例子5:

  1. ##begin end 用法
  2.  
  3. #打印第二行之后的,列1,列4
  4. awk -F"|" 'BEGIN {print "start-->"} NR>=2{print $1,$4} END{print "end"}' kimbo_test.txt

打印结果5:

shell awk命令的更多相关文章

  1. shell awk命令字符串拼接

    本节内容:awk命令实现字符串的拼接 输入文件的内容: TMALL_INVENTORY_30_GROUP my163149.cm6 3506 5683506 mysql-bin.000013 3273 ...

  2. Linux Shell脚本入门--awk命令详解

    简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 ...

  3. 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)

    前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...

  4. Awk 命令学习总结、AWk命令系列学习(linux shell)

    AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍   awk语言中,怎么 ...

  5. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  6. shell基础 -- grep、sed、awk命令简介

    在 shell 编程中,常需要处理文本,这里介绍几个文本处理命令. 一.grep 命令 grep 命令由来已久,用 grep 命令来查找 文本十分方便.在 POSIX 系统上,grep 可以在两种正则 ...

  7. Shell学习(五)—— awk命令详解

    一.awk简介   awk是一个非常好用的数据处理工具,相对于sed常常作用于一整个行的处理,awk则比较倾向于一行当中分成数个[字段]处理,因此,awk相当适合处理小型的数据数据处理.awk是一种报 ...

  8. 【shell】awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  9. Shell学习:grep, sed, awk命令的练习题

    http://www.cnblogs.com/chengmo/archive/2013/01/17/2865479.html 文件:datafileSteve Blenheim:238-923-736 ...

随机推荐

  1. Xcode 编译静态库

    有时候,我们需要将一部分经常用到的代码提取出来用来复用,或者说需要用到c++的代码的时候,可以通过编译成静态库的方式来使用.本文中使用的Xcode版本是8.3,静态库制作过程和其他版本基本一样,可能出 ...

  2. Django模板继承后出现logo图片无法加载的问题

    父文件:index.html <!DOCTYPE html> <html lang="en"> <head> <title>{% b ...

  3. 流畅的python 对象引用 可变性和垃圾回收

    对象引用.可变性和垃圾回收 变量不是盒子 人们经常使用“变量是盒子”这样的比喻,但是这有碍于理解面向对象语言中的引用式变量.Python 变量类似于 Java 中的引用式变量,因此最好把它们理解为附加 ...

  4. 我的Android进阶之旅------>解决:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

    错误描述 今天在Android Studio项目中加入了jackson的开发包,编译运行时候,引发了如下的错误: Error:Execution failed for task ':app:trans ...

  5. servlet 通过 FileItem 实现多文件上传

    [本文简介] 一个servlet 多文件上传的简单例子. [依赖包] commons-fileupload-1.3.1.jar commons-io-2.2.jar [依赖包下载] commons-f ...

  6. 修改 item2 用户名

    首先在命令行输入 cd .oh-my-zsh/themes 如下图: 然后命令行输入 sudo vi agnoster.zsh-theme 如下图: 最后在编辑主题文件 在 prompt_segmen ...

  7. iOS学习之七牛云存储应用

    前言 七牛云存储,是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管.传输加速以及图片.音视频等富媒体的云处理服务. 七牛云官网http://www.qiniu.com ...

  8. 解释一下python中的逻辑运算符

    python中有三个逻辑运算符:and.or.not print(False and True)#False print(7<7 or True)#True print(not 2==2)#Fa ...

  9. 关于python中的查询数据库内容中用到的fetchone()函数和fetchall()函数(转)还有fetchmany()

    最近在用python操作mysql数据库时,碰到了下面这两个函数,标记一下: fetchone() : 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() ...

  10. PAT 天梯赛 L1-005. 考试座位号 【MAP标记】

    题目链接 https://www.patest.cn/contests/gplt/L1-005 题意 有一个 考生号,一个试机座位,一个考试座位,给出试机座位,查询 考生号和考试座位 思路 MAP + ...