如何使用shell脚本从.csv文件中获取最后一行第n列数据

如何使用shell脚本从.csv文件中获取最后一行第n列数据,shell,Shell,我有一个csv文件,需要获取最后一行第n列的值 如何做到这一点 它是否对csv中的所有记录始终进行内部循环 到最后一行获取数据,就像在这种情况下一样,我想我们将 如果是大型csv文件,则会出现一些性能问题 感谢我知道我在从csv文件获取值时遇到了空格和其他双引号问题。 通过trans和awk以及truncate的组合解决了该问题 value=`tail -1 file.csv | awk -F',' '{print $5}' | tr -s ' ' '_' | tr -d '"'` ech $v

我有一个csv文件,需要获取最后一行第n列的值

  • 如何做到这一点
  • 它是否对csv中的所有记录始终进行内部循环
    到最后一行获取数据,就像在这种情况下一样,我想我们将
    如果是大型csv文件,则会出现一些性能问题

  • 感谢

    我知道我在从csv文件获取值时遇到了空格和其他双引号问题。 通过trans和awk以及truncate的组合解决了该问题

    value=`tail -1 file.csv | awk -F',' '{print $5}' | tr -s ' ' '_' | tr -d '"'`
    ech $value
    

    您也可以使用cut命令执行类似的操作

     >Wed Oct 05|01:47:01|gaurav@[STATION]:/root/ga/scripts/temp/tmp % cat c.csv |head -3
    1,2,3,4,5,6,7,8
    1,2,3,4,5,6,7,8
    1,2,3,4,5,6,7,8
     >Wed Oct 05|01:47:04|gaurav@[STATION]:/root/ga/scripts/temp/tmp % cat c.csv |cut -f7 -d","|head -3
    7
    7
    7
     >Wed Oct 05|01:47:06|gaurav@[STATION]:/root/ga/scripts/temp/tmp %
    

    tail
    可以获取最后一行
    awk
    无法获取列。例如,
    tail-1 file.csv | awk-F,'{print$5}'
    打印最后一行的第五列
    awk-F,'END{print$N}'file.csv
    ,其中,
    N
    是根据要求的最后一行的任何列编号@伊尼亚删除旧评论,因为它很混乱。非常感谢您的帮助。。。tail-1 file.csv | awk-F,{print$5}=>这会打印第五列的值。但在我的例子中,我需要将它存储在一个变量中,它不应该打印值。只是想知道我们如何才能做到这一点。我现在有了这样的东西->tail-1$file | awk-F,{print$4},所以基本上现在我有了这个->tail-1$file | awk-F,{print$4}“我希望存储输出,而不打印输出。因此,请建议我们如何执行相同的操作。