ON DUPLICATE KEY UPDATE в стандарте не действительно . Это стандартно, как REPLACE. См. SQL MERGE .
По сути, обе команды являются альтернативными версиями синтаксиса стандартных команд.
Я делаю поспешные выводы, но я предполагаю, что вы хотите получить полную дату, а не только «10» дня?
gawk -F'|' '{print gensub( /^(.{8}).*/, "\\1", "1",$5)}' data
20190110
20190110
20190110
20190110
Вы можете снова передать его в cut
:
cut -d'|' -f5 <input.txt | cut -c1-7
Или использовать awk
:
awk -F'\|' '{print substr($5, 1, 7)}' input.txt