我有两个文件。在一个文件中,我每行有一个随机日期,在另一个文件中,我每行有一个数字,这意味着:
文件1:
2018/06/24 14:17:19
2018/06/15 17:24:50
2018/07/15 10:25:29
文件2:
5938
1234
4567
因此,我想读取两个文件并将数字(以秒为单位)添加到日期,每行一次。
我的代码:
#!/bin/sh
IFS=$'\n'
for i in `cat fechas_prueba.txt`
do
for j in `cat duraciones.txt`
do
echo "$i - $j"
newDate=$(date -d "$i $j seconds" "+%Y/%m/%d %H:%M:%S")
echo $newDate >> sum_dates.txt
done
done
我希望file1的第一行与file2的第一行相加,第二行与第二行的总和...这意味着:
2018/06/24 15:56:17
2018/06/15 17:45:24
2018/07/15 11:41:36
但是,我得到以下信息:
2018/06/24 15:56:17
2018/06/24 14:37:53
2018/06/24 15:33:26
2018/06/15 19:03:48
2018/06/15 17:45:24
2018/06/15 18:40:57
2018/07/15 12:04:27
2018/07/15 10:46:03
2018/07/15 11:41:36
所以,我如何只将line1与line1相加,将line2与line2相加,等等。
谢谢!
答案 0 :(得分:0)
可以使用类似的方法,假设您的日期在date.txt中,添加到这些日期的第二个在second.txt中,并且您希望最终结果在finaldate.txt中。
#!/bin/ksh
# Opening finaldate.txt for writing on file descriptor 3
exec 3>./finaldate.txt
# Read simultaneously the OriginalDate from file descriptor 4 and
# SecondToAdd from file descriptor 5
while read -u 4 OriginalDate && read -u 5 SecondToAdd; do
FinalDateInSecond=$(($(date -d "$OriginalDate" +"%s")+$SecondToAdd))
FinalDate=$(date -d @"$FinalDateInSecond" +"%Y/%m/%d %H:%M:%S")
# Printing the result on file descriptor 3
print -u 3 $FinalDate
# Having date.txt being read on file descriptor 4 while second.txt being
# read on file descriptor 5
done 4<date.txt 5<second.txt
希望它能提供帮助