【问题标题】:How to print the csv file excluding first column till end using awk如何使用awk打印不包括第一列的csv文件直到结束
【发布时间】:2016-10-01 16:08:46
【问题描述】:

我有一个包含动态列的 csv 文件。 我尝试使用awk -F , 'NF>1' resul1.txt,但它仍然会打印所有列。

因为它有动态列。 使用 print $1 打印到最后是相当困难的。

【问题讨论】:

    标签: shell csv awk


    【解决方案1】:

    试试这个 awk 命令:

    awk -F, '{$1=""}1' input.txt | awk -vOFS=, '{$1=$1}1' > output.txt
    
    • 将第一个字段留空
    • 再次打印整行

    【讨论】:

      【解决方案2】:

      试试substr函数:

      substr(string, start [, length ]) 返回一个长度字符长度的字符串子字符串,从字符号 start 开始。字符串的第一个字符是字符 第一。例如 substr("washington", 5, 3) 返回 "ing"。*

      awk -F, '{print substr($0,length($1)+1+length(FS))}' file
      

      【讨论】:

        【解决方案3】:

        你可以使用cut:

        cut -d',' -f2- yourfile.csv > output.csv
        

        解释

        • -d - 将分隔符设置为,
        • -f - 要打印的字段
        • 2- - 从 2 字段到行尾

        awk:

        awk -F, '{sub(/[^,]+,/,"",$0);}1' OFS=, yourfile.csv > output.csv
        

        sed:

        sed -i.bak 's/^[^,]\+,//g' yourfile.csv
        
        • -i - 就地编辑

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-25
          • 1970-01-01
          • 1970-01-01
          • 2017-04-23
          • 2018-04-11
          • 2023-02-04
          • 2021-06-22
          • 2015-12-12
          相关资源
          最近更新 更多