我有两个csv文件。
File1.csv
F1 F2
14:01 22
14:05 23
14:07 34
14:58 98
15:01 22
15:10 24
File2.csv
F1 F2
14:01 22
14:06 21
14:07 34
14:59 08
15:01 22
15:19 20
是否有可能有类似下面的内容?
F1 F2 F3
14:01 22 22
14:05 23
14:06 21
14:07 34 34
14:58 98
14:59 08
15:01 22 22
15:10 24
15:19 20
谢谢。
答案 0 :(得分:2)
这是一个纯粹的bash
解决方案,不是@Inian指出的效率最高但仍然纯
#!/bin/bash
f1=()
f2=()
while read -r f1l; do
f1[${#f1[@]}]="$f1l"
done < File1.csv
while read -r f2l; do
f2[${#f2[@]}]="$f2l"
done < File2.csv
output=$'F1\tF2\n'
for (( i=1; i<${#f1[@]}; ++i ))
do
f1c1=${f1[i]%% *}
f1c2=${f1[i]##* }
f2c1=${f2[i]%% *}
f2c2=${f2[i]##* }
if [[ $f1c1 = $f2c1 ]]; then
output+="$f1c1"$'\t'$(($f1c2+$f2c2))$'\n'
else
output+="$f1c1"$'\t'"$f1c2"$'\n'
output+="$f2c1"$'\t'"$f2c2"$'\n'
fi
done
echo "${output:0:-1}" > File3.csv