【发布时间】:2017-01-13 12:16:41
【问题描述】:
我有一个 csv 文件,其中包含如下数据:
67940,"Alpha",ISS3425345,12/9/2014 21:12,
69542,"Beta",ISS03425324,1/16/2015 11:56,
69761,"Gamma",ISS02345,1/22/2015 12:54,
以逗号作为分隔符。第 4 个字段是记录创建的时间戳。我需要编写一个脚本作为参数输入时间范围的开始和结束,以搜索此时间范围内的所有记录。
我目前的进度:
#!/bin/bash
SearchStart=$1
SearchEnd=$2
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ ! -f "$DIR/Output_data.csv" ]; then
touch $DIR/Output_data.csv
fi
while IFS= read -r current_escalation; do
Timestamp=$( echo $current_escalation | cut -d',' -f4 )
(Here is some script to search records from SearchStart to SearchEnd)
done <$DIR/input_data.csv
我需要在时间范围内返回所有结果的脚本。例如,开始日期是 2014 年 9 月 15 日,结束日期是 2015 年 10 月 20 日。我需要从 2014 年 9 月 5 日到 2015 年 10 月 20 日的所有记录
【问题讨论】:
-
bash不是这个工具,使用awk -
或者尝试下载使用
dategrep -
注意,你可以通过说
while IFS=, read -r col1 col2 col3 col4 _直接得到$Timestamp;这会将第一个字段存储在$col1中,第二个字段存储在$col2中,依此类推。 -
@Inian,你能提供一些关于 awk 的代码示例吗?
-
@VasiliyVegas:这里有很多类似的答案,尝试一下,在这里发表你的努力。