【发布时间】:2019-10-10 10:58:24
【问题描述】:
cat sample_file.txt(从 Control-M 中提取的作业信息)
upctm,pmdw_bip,pmdw_bip_mnt_35-FOLDistAutoRpt,Oct 7 2019 4:45 AM,Oct 7 2019 4:45 AM,1,1,Oct 6 2019 12:00 AM,Ended OK,3ppnc
upctm,pmdw_ddm,pmdw_ddm_dum_01-StartProjDCSDemand,Oct 17 2019 4:02 AM,Oct 17 2019 4:02 AM,3,1,Oct 16 2019 12:00 AM,Ended OK,3pqgq
我需要将此文件处理成数据库表(Oracle)
但是我需要确保那一天是 2 号(例如 7 到 07)。
(例如:Oct 07 2019 6:32 AM)
我使用这个命令来获取每一行的所有日期:
cat sample_file.txt | grep "," | while read line
do
l_start_date=`echo $line|cut -d ',' -f4`
l_end_date=`echo $line|cut -d ',' -f5`
l_order_date=`echo $line|cut -d ',' -f8`
echo $l_start_date
echo $l_end_date
echo $l_order_date
done
输出:
Oct 7 2019 4:45 AM
Oct 7 2019 4:45 AM
Oct 6 2019 12:00 AM
Oct 17 2019 4:02 AM
Oct 17 2019 4:02 AM
Oct 16 2019 12:00 AM
expected output:
FROM: Oct 7 2019 6:32 AM
To: Oct 07 2019 6:32 AM
我使用了这个 sed 命令,但它也增加了 2 天 (17)
sed command sed 's|,Oct |,Oct 0|g' sample_file.txt
Oct 17 was change to Oct 017
upctm,pmdw_bip,pmdw_bip_mnt_35-FOLDistAutoRpt,Oct 07 2019 4:45 AM,Oct 07 2019 4:45 AM,1,1,Oct 06 2019 12:00 AM,Ended OK,3ppnc
upctm,pmdw_ddm,pmdw_ddm_dum_01-StartProjDCSDemand,Oct 017 2019 4:02 AM,Oct 017 2019 4:02 AM,3,1,Oct 016 2019 12:00 AM,Ended OK,3pqgq
【问题讨论】:
-
欢迎来到 SO!对不起,我在你的编辑中干扰了这么多。我试图让这个问题更容易阅读。您还应该从问题中删除
SQL标记,因为它与 SQL 无关。 -
@cars10m 很抱歉,非常感谢。我是新来的,所以我对编辑不熟悉。
-
完成,我使用了这个 sed 的/([Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]) ([1-9] ) /\1 0\2 /g' sample_file.txt 我怎样才能完成这个?
标签: unix