Bash Scripting - 带分隔符的AWK?

时间:2015-06-13 16:30:32

标签: bash unix awk

我在文本文件中有一个标题,如下所示:

First-Name:Last-Name:City:Home-Phone:Cell-Phone

我需要做的是显示每个条目的Last-NameCell-Phone个数字。

我是bash脚本的新手,我不确定我可以用它做什么。我被告知awk可能有用,但在环顾四周后,我仍然不太明白如何使用它。

2 个答案:

答案 0 :(得分:8)

使用-F指定字段分隔符:

awk -F":" '{print $2, $5}'

答案 1 :(得分:2)

我发现this process是处理这类文件的有用工具。它比低级别的unix实用程序更直观,但可以说功能不那么强大。

采取以下文件:

csvcut

您可以使用csvcut test.csv -d ':' -c 2,5 提取第二和第五列:

Last-Name,Cell-Phone
Ashbury,444-444-4444
Brown,555-555-5555
Chaplin,666-666-6666

其中给出了以下输出(包括标题行):

Boston

将各种csvkit命令组合在一起可以让您快速浏览数据。例如,以下内容将过滤为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 | |------------+---------------| 为您提供精美的输出:

{{1}}