【发布时间】:2014-11-24 15:25:43
【问题描述】:
我有一个包含内容的文件:
aaa.bbb.ccc ddd.eee.fff.ggg h.i.j.k
如果我使用代码:
awk '{sub(/\.$/, ""); print $1}' test.txt
returns aaa.bbb.ccc
awk '{sub(/\.$/, ""); print $3}' test.txt
Returns: h.i.j.k
我理解 sub 函数被用作:sub(regexp, replacement, target)
我不明白这部分.$/,来自子函数。 .$ 是什么?
谢谢
更新
好的,我喜欢你解释事情的方式——谢谢!
如果我把这个应用到一个真实的例子中,
/usr/bin/host 172.0.0.10
01.0.0.172.in-addr.arpa 域名指针hostname.domain.com.
/usr/bin/host 172.0.0.10 | /bin/awk '{sub(/.$/, "");打印 $5}' 给出:hostname.domain.com
/usr/bin/host 172.0.0.10| /bin/awk '{sub(/.$/, "");打印 $1}' 给出:10.0.0.172.in-addr.arpa
-子函数将匹配到行尾,因为有一个“。” -“”在做什么? -我不明白 awk 是如何将内容拆分为列的?
【问题讨论】: