如何使用awk打印不包括第一列到最后一行的csv文件

时间:2016-06-02 05:07:30

标签: shell csv awk

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

因为它有动态列。 使用print $1直到结束打印非常困难。

3 个答案:

答案 0 :(得分:0)

尝试 substr 功能:

  

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

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

答案 1 :(得分:0)

您可以使用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 - 就地编辑

答案 2 :(得分:0)

试试这个awk命令:

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