[英]Bash Scripting - AWK with Delimiter?
我在文本文件中有一个标题,如下所示:
First-Name:Last-Name:City:Home-Phone:Cell-Phone
我需要做的是显示每个条目Last-Name
和Cell-Phone
号码。
我是bash脚本的新手,而且我不确定如何使用它。 有人告诉我awk
可能有用,但是环顾四周后,我仍然不太了解如何使用它。
用-F
指定字段分隔符:
awk -F":" '{print $2, $5}'
我发现csvkit是处理此类文件的有用工具。 它比低级的unix实用程序直观得多,尽管功能不那么强大。
取以下文件:
First-Name:Last-Name:City:Home-Phone:Cell-Phone
Alice:Ashbury:Boston:111-111-1111:444-444-4444
Bob:Brown:Boston:222-222-2222:555-555-5555
Carol:Chaplin:Chicago:333-333-3333:666-666-6666
您可以使用csvcut
提取第二列和第五列:
csvcut test.csv -d ':' -c 2,5
给出以下输出(包括标题行):
Last-Name,Cell-Phone
Ashbury,444-444-4444
Brown,555-555-5555
Chaplin,666-666-6666
将各种csvkit命令组合在一起可以使您快速浏览数据。 例如,以下内容将过滤以Boston
为City
所有行:
csvformat test.csv -d ':' | csvgrep -m Boston -c 3 | csvcut -c 2,5 | csvlook
csvlook
为您提供漂亮的输出:
|------------+---------------|
| Last-Name | Cell-Phone |
|------------+---------------|
| Ashbury | 444-444-4444 |
| Brown | 555-555-5555 |
|------------+---------------|
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.