0

我有一个 csv 文件,它有各种列,其中一个列是日期列,所以对于给定的日期,我想从 csv 中获取所有记录,我不能使用 grep 的原因是那个日期可能在其他专栏中,我不希望那样。

到目前为止,这就是我所得到的,

日期是这种格式:

sed 's/\"//g' kk.csv | awk -F ',' '{print $4}'   '$4 ~ /^2012.*/'

首先我删除所有的“”引号,然后我指定了分隔符','然后我在文件的第 4 列应用条件,即日期列,但它不起作用,我正在做什么书上说。

谁能指出我做错了什么,这是与报价相关的问题吗?

4

2 回答 2

1

无需使用 sed。只要 awk 就够搜索了

awk -F, '$4 ~ "^\"2012"' kk.csv

这将打印第 4 列以“2012”开头的所有行

如果你想要格式化输出(删除引号等) awk 也这样做

于 2013-02-12T20:40:55.277 回答
1

awk只接受一个脚本,而你给它两个({printf $4}$4 ~ /^2012.*/)。condition { commands }使用 awk 的语法将它们加入到一个 awk 脚本中:

sed 's/\"//g' kk.csv  | awk -F ',' '$4 ~ /^2012.*/ {print $4}'
于 2013-02-12T20:24:45.677 回答