【问题标题】:code to identify values in comma separated value file用于识别逗号分隔值文件中的值的代码
【发布时间】:2011-08-29 10:08:13
【问题描述】:

我想在 shell 脚本中解析一个 csv 文件。我想在提示符下输入文件名。喜欢:

somescript.sh filename

可以吗?

另外,我将读取用户输入以在 csv 中显示特定的特定数据编号。 例如,假设 csv 文件每行有 10 个值:

1,2,3,4,5,6,7,8,9,10

我想读取第 5 个值。我该怎么做? 并且涉及多条线路。

谢谢。

【问题讨论】:

标签: shell unix


【解决方案1】:

如果你的文件真的是这么简单的格式(只有逗号,没有空格),那么cut -d, -f5 就可以了。

【讨论】:

    【解决方案2】:
    #!/bin/sh
    
    awk -F, "NR==$2{print \$$3}" "$1"
    

    用法:

    ./test.sh FILENAME LINE_NUMBER FIELD_NUMBER
    

    【讨论】:

    • 行号怎么算?
    • 你能告诉我-F和NR是什么意思吗?
    • 这对我不起作用。我在外壳上输入这个。它什么都不做
    • @amit:当然。它旨在作为somescript.sh 工作。直接从命令行输入awk -F, 'NR==6{print $5}' FILENAME_TO_PARSE
    • 如果我在命令行中使用它,它工作正常。但是如果我在 shell 脚本中输入上面的代码并运行它。它什么也不显示。我做错了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多