shell 脚本编程总结(一)

文本处理工具awk

awk是基于列的文本处理工具。它的功能强大,在shell编程中用着广泛的应用。下面以示例的方式解释awk的常用操作。

为了更好的操作awk,为此创建文件abc.txt。字符串之间都以Tab作为分隔符。文件内容如下:

         john       male   30  021-1111111   a

        lucy       female 25  021-2222222   ab

         jack       male   35  021-3333333   abc

         lily       female 20  021-4444444   abcd

每一个列称为一个域,以此用$1,$2,$3 ...表示。其中$0代表所有域,也就是整个文件。

1、打印指定列

要想输出第一列和第二列的信息,就要用到$1 $2。具体命令如下:

cat abc.txt | awk '{print $1,$2}'

2、变量NF

NF是内部变量。NF存放着每一行的列的个数,也就是每行域的总数。具体示例如下:

查看每一行的域的总数:cat abc.txt | awk '{print NF}'

有了以上认识,接下来就不难理解$NF。$NF表示每一行最后一个域的值。变量$(NF-1)表示一行中倒数第二个域的值。以此类推$(NF-2)代表什么就明白了吧!示例代码如下:

cat abc.txt | awk '{print $(NF-4),$(NF)}'

3、截取指定的字符串

截取字符串函数是substr(指定域,开始字符位置,结束字符位置)。例如获取$4中的"021-",命令如下:

cat abc.txt | awk '{print substr($4,1,4)}'

如果想要获取"-"后边的字符,就需要用substr($4,5),意思是截取$4域的第五个字符开始的所有字符。命令如下:

cat abc.txt | awk '{print substr($4,5)}'

4、获取字符串长度

利用内部变量length可以获得每行字符串的长度。获取每行的字符长度,示例如下:

cat abc.txt | awk '{print length}'

获取$5的字符串长度,示例如下:cat abc.txt | awk '{print length($5)}'

5、求和

求$3的和,示例如下:cat abc.txt | awk  'BEGIN{total=0}{total+=$3}END{print total}'

6、条件查询

输出jack的所有信息。示例如下:awk '$1=="jack" {print $0}' abc.txt

转载于:https://www.cnblogs.com/wgy6970/p/7824730.html

shell 脚本编程总结相关推荐

  1. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  2. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  3. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/ 转载于:https://www.cnblogs.com/pegasu ...

  4. Linux命令行与shell脚本编程大全(第3版)

    作者:[美] 布鲁姆(Richard Blum),布雷斯纳汉(Christine Bresnahan) 著,门佳,武海峰 译 出版社:人民邮电出版社 品牌:iTuring 出版时间:2016-08-0 ...

  5. 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)

    欢迎来到命令行和shell脚本编程的世界!厚厚的一本小样书,拿在手上,厚厚的一本,六百多页.不只是掂在手上的重量,更是一本优秀的初学者入门指南,又会是你的Linux书库中非常不错的参考书.如果你想从整 ...

  6. (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务

    文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...

  7. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  8. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---02

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---20

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  10. shell脚本编程《linux下kvm虚拟机的创建、开启、显示、停止、重置》

    Shell脚本编程--案例一 编程要求: 1.创建vm-ctl脚本,在/bin/下 2.实现功能:创建虚拟机.创建虚拟机快照.开启虚拟机.显示虚拟机.停止虚拟机.重置虚拟机. 脚本实现预期结果: sh ...

最新文章

  1. 微软推安全浏览器Gazelle,取代操作系统?
  2. 百度计算生物研究登上Nature子刊!将3D结构引入分子表征,结果超越斯坦福MIT,已落地制药领域...
  3. Win7旗舰版中的IIS配置asp.net的运行环境
  4. 主流浏览器的HTTP最大并发连接数
  5. 扩展 OpenLayers.Layer.WMS 为自定义的瓦片浏览服务
  6. my task is always searched based on employee responsible
  7. 关于c++的一些案例
  8. 数字图像处理--图像二阶导数的推导
  9. TensorFlow 教程 --教程--2.1 综述
  10. PASCAL-VOC2012 数据集介绍 及 制作同格式数据
  11. bzoj 3611: [Heoi2014]大工程(虚树+树形DP)
  12. B - Vicious Keyboard
  13. $.ajax跳入error之 async
  14. C11标准和C++11标准
  15. 渗透测试工程师面试题大全(164道)
  16. 宏定义超过字长的一些问题
  17. error ‘for’ loop initial declarations are only allowed in C99 mode的报错原因和两种解决办法
  18. PCB genesis 大孔扩孔(不用G84命令)实现方法
  19. linux est 时间,Linux 时间标准简介
  20. 跨namespace通信

热门文章

  1. [渝粤教育] 西南科技大学 交通工程学 在线考试复习资料
  2. 【渝粤教育】广东开放大学 建筑设备 形成性考核 (33)
  3. QA面试题:之一(中英文题目、难度:简单)
  4. ubuntu16.04安装PHP5.6和7.0
  5. Android Studio添加aar依赖
  6. mybatis 中的![CDATA[ ]]
  7. 移动端小总结(1)---meta、input和单行多行文字溢出省略号
  8. python mysql connector
  9. 【转】飞鸽端口号被占用时的解决方法
  10. BZOJ1934: [Shoi2007]Vote 善意的投票