Unix 使用awk转换日期

Unix 使用awk转换日期,unix,Unix,我有一个dates.csv文件,其中包含以下数据: Mar 27 2014~Aug 24 2014~Apr 06 2014~ 我一直在尝试将其转换为时间戳,但每次尝试都没有成功 我尝试了以下代码:- #!/bin/bash i=0 j=`head -1 dates2| tr '~' '\n' | wc -l` echo $i echo $j while [ $i -lt $j ] do k=`awk 'BEGIN{FS="~"}{print $(i+1)}' dates2`

我有一个dates.csv文件,其中包含以下数据:

Mar 27 2014~Aug 24 2014~Apr 06 2014~
我一直在尝试将其转换为时间戳,但每次尝试都没有成功

我尝试了以下代码:-

#!/bin/bash

i=0
j=`head -1 dates2| tr '~' '\n' | wc -l`
echo $i
echo $j

while [ $i -lt $j ]
do
    k=`awk 'BEGIN{FS="~"}{print $(i+1)}' dates2`
    echo $k
    date +"%m/%d/%Y %H:%M:%S" -d "$k"
    (( i++ ))
done
awk命令总是为print$1执行,我试图对所有由
FS=“~”
分隔的列进行迭代

我期望的输出是:

03/24/2014 00:00:00~08/24/2014 00:00:00~04/06/2014 00:00:00~

我尝试在时使用
,但效果良好:

#!/bin/bash
while read data
do
   fDate=`date +"%m/%d/%Y %H:%M:%S" -d "$data"`
   echo "new Date: $fDate"
done < dates2
#/bin/bash
读取数据时
做
fDate=`date+%m/%d/%Y%H:%m:%S“-d”$data`
echo“新日期:$fDate”
完成日期<日期2

首先,将日期读入数组:

$ IFS='~' read -ra dates < file
现在,
$converted
包含以下字符串:

$ echo "$converted"
03/27/2014 00:00:00~08/24/2014 00:00:00~04/06/2014 00:00:00~
$ echo "$converted"
03/27/2014 00:00:00~08/24/2014 00:00:00~04/06/2014 00:00:00~