所以这是我的问题。我有一个 .csv 文件 (Current.csv) 的问题,因为在整个数据中随机放置逗号,所以 awk-ing 文件不会为我正在寻找的特定类型的信息提供恒定的列号. 幸运的是,我意识到此信息始终是日期格式 (m,mm)/(d,dd)/yy 的第三个实例。所以我正在尝试使用下面的正则表达式来仅显示第 ith 行中的日期:
awk -F',' '{if (NR==$i)print}' Current.csv | grep -o "[0-9]{1,2}/[0-9]{1-2}/[0-9]{1,2}" | echo
到目前为止它没有显示任何内容,我完全不知道为什么。我对显示第三个的猜测是将其全部通过管道传输到:
awk {print $3}
关于 awk 正则表达式搜索问题的任何想法?
示例行
“lettershere”,numbershere,“retardedbrokenquoteshere,mm/dd/yy,morestuff,mm/dd/yy,numbers,mm/dd/yy
假设 CSV 文件是有效的(即包含逗号的字段被引用),您应该使用实际将其解析为 CSV 的内容。以下简单的 Python 脚本将提取每行的第二列。
i 未设置,因此默认为零,无论如何你指的是 i 而不是 $i。
您需要 grep -E 来扩展正则表达式。
月份字段中的 {1-2} 应为 {1,2} 并且正斜杠应由反斜杠保护。
管道到 echo 将丢失任何输出,因为它不是过滤器,并且在任何情况下都不需要。
正如 mgorven 所建议的,使用不同的方法来处理 csv。