【问题标题】:Cat command with a csv file带有 csv 文件的 cat 命令
【发布时间】:2014-09-07 21:35:09
【问题描述】:

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

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

我怎样才能运行 cat 命令并且只返回投票组织,示例行中的“American Res. Group”,对于每一行。 我假设它看起来类似于: 猫投票.csv /^[]$/

另外我怎么能算出不同投票机构的总数?

【问题讨论】:

    标签: regex cat


    【解决方案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
    

    【讨论】:

    • 你能帮我做点别的吗?我有一个名为 words 的文件,它是一堆不同单词的列表。我怎么能输出所有连续有六个(或更多)辅音(非元音)的单词。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多