博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell 脚本编程总结
阅读量:5104 次
发布时间:2019-06-13

本文共 1166 字,大约阅读时间需要 3 分钟。

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

你可能感兴趣的文章
聚合与组合
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
[leetcode]Minimum Path Sum
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Screening technology proved cost effective deal
查看>>
mysql8.0.13下载与安装图文教程
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
Jsp抓取页面内容
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
可选参数的函数还可以这样设计!
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>