带有csv文件的Cat命令

时间:2014-09-07 21:35:09

标签: regex cat

我有一个名为“polls.csv”的文件,我必须使用cat命令返回某个部分。该文件的每一行如下所示: 犹他州,5,27,64,4,9月13日,,,,,,, 5,美国Res。组

以下是cat输出的示例: http://i.imgur.com/XBuJ5kL.png

我如何运行cat命令,并且只返回每个行的示例行中的轮询组织“American Res.Group”。 我假设它看起来类似于: cat polls.csv / ^ [] $ /

另外,我怎么能计算不同民意调查机构的总数呢?

2 个答案:

答案 0 :(得分:1)

我认为cat命令不会单独完成工作。我想你应该看看gnu core utils包,你会发现很多工具:http://www.gnu.org/software/coreutils/manual/html_node/index.html

一种简单的方法是:

cat polls.csv |sed -s "s/.*,//"

sed -s“s /.*,//”将最后一个逗号之前的所有内容替换为空,从而离开了民意调查组织。

对于第二个问题,您可以继续使用sort -u,它将对此进行排序,然后wc -l进行计数,例如:

cat polls.csv|sed -s "s/.*,//"|sort -u|wc -l

对于辅音检查,它是一个单独的问题定义。有很多方法可以检查它。这是我的方式:

# /bin/python
import sys
import re

consonants = "bcdfghjklmnpqrstvwxyz"

def count_consonants(word):
    count = 0
    for x in word:
        if x in consonants:
            count += 1
    return count

while True:
    line = sys.stdin.readline()
    if line:
        line = line.rstrip()
        line = re.sub(" +", " ", line)
        words = line.split(" ")
        for w in words:
            c = count_consonants(w)
            if c >= 6:
                print w
    else:
        break

请将其保存为script.py,然后执行:

cat polls.csv|sed -s "s/.*,//"|sort -u|python script.py

cat words|python script.py

答案 1 :(得分:0)

哦,我误解了你的要求。试试这个:

awk -F, '{print $NF}' polls.csv