【问题标题】:Extract the value of nth column in the last line提取最后一行第n列的值
【发布时间】:2017-11-15 17:08:14
【问题描述】:

我有一个包含以下数据的 .csv 文件:

Name,Age,Gender
x,10,F
y,20,M
z,30,F
.
.
.

当我运行某些东西时,文件中的行数总是会改变。如何在文件的最后一行中提取AgeName。到目前为止,我试过这个:

  #!/bin/sh
  #extracting the headings and the last line values from the data.csv 
  file
  (head -1 data.csv && tail -1 data.csv) > dummy.txt 
  #this part doesn't work
  (sed -n "Name" data.csv && sed -n "Age" data.csv)>>dummy.txt

上面的代码出错了:

sed: -e expression #1, char 13: unterminated `s' command*

【问题讨论】:

    标签: shell csv unix sed


    【解决方案1】:

    使用 awk:

    awk -F "," 'END{print $2}' file
    

    使用 GNU sed:

    sed -rn '$s/.*,(.*),.*/\1/p' file
    

    输出:

    30

    【讨论】:

      【解决方案2】:
      `tail -1 file | cut -d, -f2`
      
      • tail -1 获取最后一行,
      • cut -d 指定分隔符,
      • -f2 指定字段

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-26
        • 1970-01-01
        • 2013-08-13
        • 1970-01-01
        相关资源
        最近更新 更多