如何使用 grep 仅搜索标记下方列的值?例如在以下 CSV 文件中:
ABC 1 4 5 2 3 0 1 3 6
...我怎样才能仅获取 B 列的值?
答案1
我不确定您是否可以使用 grep 来执行此操作,但是您可以使用awk
:
awk '{ print $2}' file.csv
它将打印出文件的第二列。
编辑
如果不想打印出列名(B
在示例中),您可以对 FNR 设置条件:
FNR 当前输入文件中的输入记录号。
像这样:
awk ' FNR > 1 { print $2}' file.csv
编辑2
如果您的文件是真正的 CSV(逗号分隔值)文件,则必须提供字段分隔符参数(-F
或--field-separator
):
awk -F',' ' FNR > 1 { print $2}' file.csv
答案2
根据问题在命令中使用 grep。
cat file.csv | cut -d " " -f 2 | grep -o '[0-9]'
当 csv 为逗号且 -f 2 为第二个字段时,cut -d(分隔符为“”)使用空格或“,”
grep -o 是 --only-matching
编辑以允许非数字字段丢失 grep
cat file.csv | cut -d " " -f2 | tail -n +2