命令行:从CSV文件中检索特定的列

时间:2020-10-11 01:35:51

标签: shell command-line terminal

我有一个名为articles.csv的CSV文件,其标题如下: article_id, article_title, article_shares, article_date

发现文章中的第一行数据为$ articles.csv | sed "1 d",它返回:"895", "Trump, Clinton, America. Who will win, who will lose?", "100", "01/05/2016"

我想返回数据的第四列(文章的日期),所以我使用以下代码: $ articles.csv | sed "1 d" | cut -d , -f 4

但是我没有得到日期,我得到了America. Who will win。无论某些列中包含逗号,如何获取第四列的输出?

1 个答案:

答案 0 :(得分:0)

一种快速而肮脏的解决方案:

(function() {
$("#frm_shipping_address input, #frm_shipping_address textarea, #frm_shipping_address select").jqBootstrapValidation({
    preventSubmit: true,
    submitSuccess: function($form, event) {
        event.preventDefault();
        var cbo_country = $("select#cbo_country").val();
        var cbo_state = $("select#cbo_state").val();
        
        $.ajax({
            url: "./product_address_p.php",
            type: "POST",
            data: {
                cbo_country: cbo_country,
                cbo_state: cbo_state
            },
            cache: false,
            success: function(data) 
            { 
                var $responseText=JSON.parse(data);
                if($responseText.status == 'SUC')
                {
                    // Success message
                }
                else if($responseText.status == 'ERR')
                {
                    // Fail message
                }
            },
        })
    },
});
});

一种缓慢但干净的解决方案:

... | awk -F'",' '{print $4}'

注意:CSV格式的字段之间不应有空格,因此请将记录更改为:

... | ruby -ne $'require "csv"; print CSV.parse($_)[0][3]'
相关问题