设为首页 收藏本站
查看: 1227|回复: 3

linux shell编程指南第九章------AWK 介绍3

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-2 09:15:34 | 显示全部楼层 |阅读模式
s u b s t r的另一种形式是返回字符串后缀或指定位置后面字符。这里需要给出指定字符串及

其返回字串的起始位置。例如,从文本文件中抽取姓氏,需操作域1,并从第三个字符开始:

[iyunv@localhost huangcd]# awk '{print substr($1,3)}' grade.txt
Tansley
Lulu
Bunny
Troll
Tansley

还有一个例子,在B E G I N部分定义字符串,在E N D部分返回从第t个字符开始抽取的子
串。

[iyunv@localhost huangcd]# awk 'BEGIN {STR="A FEN GOOD MEN"} END {print substr(STR,7)}' grade.txt
GOOD MEN

使用管道将字符串s t a n d - b y传入a w k,返回其长度。

[iyunv@localhost huangcd]# echo "Stand-by"|awk '{print length($0)}'
8

设置文件名为一变量,管道输出到a w k,返回不带扩展名的文件名。

[iyunv@localhost huangcd]# STR="gSSDFFDSW.txt"
[iyunv@localhost huangcd]# echo $STR|awk '{print substr($STR,1,5)}'
gSSDF

如果使用正则表达式,查询花括号( { }),在字符前加反斜线,如/ \ { /,将在a w k中失掉其
特殊含义。

SouthEast.jpg

使用上述符号,打印May Day,中间夹t a b键,后跟两个新行,再打印May Day,但这次
使用八进制数1 0 4、1 4 1、1 7 1、分别代表D、a、y。

[iyunv@localhost huangcd]# awk 'BEGIN {print "\nMay\tDay\n\nMay \104\141\171"}'


May     Day


May Day

目前为止,所有例子的输出都是直接到屏幕,除了t a b键以外没有任何格式。a w k提供函
数p r i n t f,拥有几种不同的格式化输出功能。例如按列输出、左对齐或右对齐方式。
每一种p r i n t f函数(格式控制字符)都以一个%符号开始,以一个决定转换的字符结束。
转换包含三种修饰符。
p r i n t f函数基本语法是p r i n t f([格式控制符],参数),格式控制字符通常在引号里。

SouthEast.jpg

[iyunv@localhost huangcd]# echo "65" |awk '{printf "%c\n",$0}'
A
[iyunv@localhost huangcd]# awk 'BEGIN {printf "%c\n",65}'
A
[iyunv@localhost huangcd]# awk 'BEGIN {printf "%f\n",999}'
999.000000

打印所有的学生名字和序列号,要求名字左对齐, 1 5个字符长度,后跟序列号。注意\ n
换行符放在最后一个指示符后面。输出将自动分成两列。


[iyunv@localhost huangcd]# awk '{printf "%-15s %s\n",$1,$3}' grade.txt
M.Tansley       48311
J.Lulu          48317
P.Bunny         48
J.Troll         4842
L.Tansley       4712

在查看a w k脚本前,先来查看怎样在a w k命令行中传递变量。
在a w k执行前将值传入a w k变量,需要将变量放在命令行中,格式如下:
awk 命令变量=输入文件值
(后面会讲到怎样传递变量到a w k脚本中)。
下面的例子在命令行中设置变量A G E等于1 0,然后传入a w k中,查询年龄在1 0岁以下的
所有学生。

[iyunv@localhost huangcd]# awk '{if($5<AGE) print $0}' AGE=10 grade.txt
M.Tansley   05/99     48311  Green    8    40   44
J.Lulu      06/99     48317  green    9    24   26

要快速查看文件系统空间容量,观察其是否达到一定水平,可使用下面a w k一行脚本。因
为要监视的已使用空间容量不断在变化,可以在命令行指定一个触发值。首先用管道命令将
df -k 传入a w k,然后抽出第4列,即剩余可利用空间容量。使用$ 4 ~ / ^ [ 0 - 9 ] /取得容量数值
(1 0 2 4块)而不是d f的文件头,然后对命令行与‘ i f ( $ 4 < T R I G G E R )’上变量T R I G G E R中指定
的值进行查询测试。


[iyunv@localhost huangcd]# df -k|awk '($4~/^[0-9]/) {if($4<TRIGGER) print $6"\t"$4}' TRIGGER=560000
/dev/shm        517276

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-10896-1-1.html 上篇帖子: linux shell编程指南第九章------AWK 介绍2 下篇帖子: linux shell编程指南第十章------sed 用法介绍 linux

尚未签到

发表于 2013-12-12 13:32:44 | 显示全部楼层
着寂寞光线的房间,吟听着一些掖藏的感觉。让我们一起遗忘。这寂寞爱情,我要把你给忘。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-20 02:36:57 | 显示全部楼层
猪是否能快乐得像人,我们不知道。担任容易满足得像猪,我们是常见的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-26 18:25:06 | 显示全部楼层
我们往往说想要的感情是一生一世的,但是实在是太难了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表