您好,登录后才能下订单哦!
这期内容当中小编将会给大家带来有关使用awk怎么输出文本中的字段和列,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
例 1:我创建了一个名为 tecmintinfo.txt 的文本文件。
# vi tecmintinfo.txt
# cat tecmintinfo.txt
在 Linux 上创建一个文件
然后在命令行中,我试着使用下面的命令从文本 tecmintinfo.txt 中输出第一个,第二个,以及第三个字段。
$ awk '//{print $1 $2 $3 }' tecmintinfo.txt
TecMint.comisthe
从上面的输出中你可以看到,前三个字段的字符是以空格为分隔符输出的:
字段一是 “TecMint.com”,可以通过 $1 来访问。 字段二是 “is”,可以通过 $2 来访问。 字段三是 “the”,可以通过 $3 来访问。
如果你注意观察输出的话可以发现,输出的字段值并没有被分隔开,这是 print 函数默认的行为。
为了使输出看得更清楚,输出的字段值之间使用空格分开,你需要添加 (,) 操作符。
$ awk '//{print $1, $2, $3; }' tecmintinfo.txt
TecMint.com is the
需要记住而且非常重要的是,($) 在 awk 和在 shell 脚本中的使用是截然不同的!
在 shell 脚本中,($) 被用来获取变量的值。而在 awk 中,($) 只有在获取字段的值时才会用到,不能用于获取变量的值。
例 2:让我们再看一个例子,用到了一个名为 my_shoping.list 的包含多行的文件。
No Item_Name Unit_Price Quantity Price
1 Mouse #20,000 1 #20,000
2 Monitor #500,000 1 #500,000
3 RAM_Chips #150,000 2 #300,000
4 Ethernet_Cables #30,000 4 #120,000
如果你只想输出购物清单上每一个物品的单价,你只需运行下面的命令:
$ awk '//{print $2, $3 }' my_shopping.txt
Item_Name Unit_Price
Mouse #20,000
Monitor #500,000
RAM_Chips #150,000
Ethernet_Cables #30,000
可以看到上面的输出不够清晰,awk 还有一个 printf 的命令,可以帮助你将输出格式化。
使用 printf 来格式化 Item_Name 和 Unit_Price 的输出:
$ awk '//{printf "%-10s %s/n",$2, $3 }' my_shopping.txt
Item_Name Unit_Price
Mouse #20,000
Monitor #500,000
RAM_Chips #150,000
Ethernet_Cables #30,000
上述就是小编为大家分享的使用awk怎么输出文本中的字段和列了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。