我有一个电话簿文件rubrica.txt
,其中包含每行上的记录(姓名,姓名,电话号码,电话号码,日期,日期,以秒为单位)(每个条目用空格分隔) :
andrea mantovani 3476589456 0451234567 2016/05/16 1463419858190456946
marco verratti 1265897654 3057634987 2016/05/16 1463419948782978926
zlatan ibrahimovic 2937485929 1938472639 2016/05/16 1463420078149548084
cesc fabregas 5641287659 3456789123 2016/05/16 1463420324574207170
andrea mantovani 3402948586 0459687124 2016/05/17 1463500810082293135
marco rossi 3951326586 0458793540 2016/05/17 1463500836814967504
我希望查看输出在我插入日期后添加的所有联系人。
首先,我阅读了我想要的日期,并使用以下脚本将其转换为秒:
echo "Digit the date"
read date_jap #read a date(yyyy/mm/dd)
data_sec=$(date +%s -d $data_jap) #convert the date in sec
这部分代码功能。我解释一下要更清楚。
我不知道如何将此日期与文件rubrica.txt
中的日期(最后一项)进行比较。
我用过:
cat $RUBRICA | awk '/$data_sec < \6/ { print }'
显示所有在该字段的字段6中的日期(以秒为单位)的联系人(例如,我的文件位于第一行:1463419858190456946
)大于date_sec
。
$data_sec < \6
我知道不对。我必须解决它。
答案 0 :(得分:1)
假设您的日期以秒为单位是第三条记录的值并指定:
data_sec=1463420078149548084
现在我们使用-v
将此值转换为awk,然后将第六个字段与其进行比较:
$ awk -v mydate="$data_sec" '$6 > mydate' rubrica.txt
cesc fabregas 5641287659 3456789123 2016/05/16 1463420324574207170
andrea mantovani 3402948586 0459687124 2016/05/17 1463500810082293135
marco rossi 3951326586 0458793540 2016/05/17 1463500836814967504
如果表达式$6 > mydate
的计算结果为true,则会打印记录。