Unix Awk命令

时间:2014-05-13 07:48:24

标签: unix awk

awk,我是新手这个命令,我知道它可以列出带有条件的文本文件,但我不知道如何在文本之间有“,”时列出它们,你怎么算“,”以1美元计算。

但如果它的电子邮件,电子邮件不会出于某种原因显示,我想也许我应该包括“,”?,我不知道如何解决问题,并且不知道问题是什么。 例如,我想显示customerid和customersname,我将使用:

awk'{print $1,$2}' 


Customerid, customersname, email
12312322, MIKE, example@gmail.com
51231221, CALVIN, example2@gmail.com 
91234232, LISA, example3@gmail.com
12359432, DICK, example4@gmail.com
94123432, ORAN, example5@gmail.com
63242333, KEVIN, example6@gmail.com

4 个答案:

答案 0 :(得分:2)

您想使用逗号作为分隔符吗?像这样使用-F

awk -F, '{print $1,$2}'

如果您想将逗号空格作为分隔符,则可以使用正则表达式:

awk -F',[[:space:]]*' '{print $1,$2}'

答案 1 :(得分:1)

我不确定我是否正确地提出了你的问题。您可以使用-F命令行选项指定输入字段分隔符:

awk -F, '{print $1, $2}' your.csv

输出:

Customerid  customersname
12312322  MIKE
51231221  CALVIN
91234232  LISA
12359432  DICK
94123432  ORAN
63242333  KEVIN

答案 2 :(得分:1)

只需使用FS

awk 'BEGIN { FS="," } {print $1,$2}'

来自man awk

  

<强> 7。内置变量

   The following variables are built-in and initialized before program execution.    
         ...
          FS        splits records into fields as a regular expression.
         ...

答案 3 :(得分:0)

以下是需要的代码

awk -F "," '{print $1,$2}' input.txt

<强>输出:

Customerid, customersname
12312322, MIKE
51231221, CALVIN
91234232, LISA
12359432, DICK
94123432, ORAN
63242333, KEVIN

说明:

  

-F =字段分隔符

     

“,”=使用逗号,因为列由

分隔      

'{print $ 1,$ 2}'=显示第一列和第二列

     

input.txt =您要传递的文件

希望得到它的帮助。