我目前正在处理一个处理 csv 文件的脚本,并在此过程中更正它们的某些方面。如果需要,它所做的一件事是正确的时间格式。发生两种类型的转换:
xx:xx:xx to PTxxHxxMxxS
10:03:45 to PT10H03M45S
我已经能够使用以下方法(见下文)来做到这一点,尽管我试图找出如何使用 sed 或 awk 来加快进程。除了实际的转换过程之外,我还想记录所做的更改(比如转换 4 次值,计数器将增加到 4),我可以使用 if 轻松完成下面的语句(虽然没有显示),虽然我不太了解使用 sed/awk 做这件事。
istimef=$( echo "$Sfcpp6" | grep ".*:.*:.*" )
if [ "$istimef" != "" ]; then
hs=$( echo "$Sfcpp6" | cut -d ':' -f 1 )
mn=$( echo "$Sfcpp6" | cut -d ':' -f 2 )
sc=$( echo "$Sfcpp6" | cut -d ':' -f 3 )
Sfcpp6=$( echo "PT"$hs"H"$mn"M"$sc"S" )
echo "$Sfcp6"
fi
它本质上检查时间值是否存在,然后执行转换。