我正在数据库转储中查找
fdupes
的输出:
while IFS=$'\t' read -r -a a
do for i in "${a[@]}"
do
fid=$(grep -F "${i//\.\//public://}" file_managed.dump.txt|cut -d'(' -f2 |cut -d, -f1| sed 's/[^0-9]//g')
echo -n "${fid:-$i}" $'\t'
done
echo
done < dupes.log > fids_dupes.txt
出于某种原因,我在输出中得到的行比输入多了一行:
wc -l dupes.log fids_dupes.txt
3968 dupes.log
12358 fids_dupes.txt
我以为因为
echo -n
/ echo
我只会得到一个。文件的手动比较也不是一个启示。我究竟做错了什么? (除了不使用真正的编程语言来做到这一点。)