Obtenha a entrada do arquivo de texto e depois INSERT e UPDATE da tabela do banco de dados usando shell script

Obtenha a entrada do arquivo de texto e depois INSERT e UPDATE da tabela do banco de dados usando shell script

Eu tenho um demo.txtarquivo que contém ip. Este arquivo de texto é atualizado diariamente. Eu criei uma tabela que armazena id, ip, date. Quero INSERTenviar UPDATEum ip do arquivo de texto para a tabela DATABASE com algumas condições.

  1. Se um ip duplicado for encontrado no arquivo de texto, atualize DATEa coluna com CURRENT_TIMESTAMPesse registro específico.
  2. Se um novo ip for encontrado, INSERT registro em TABLE.

O arquivo demo.txt se parece com:

1.1.1.1
2.2.2.2
3.3.3.3
1.1.1.1

Eu tentei estes:

 CREATE TABLE `demo` (
  `id` int(25) NOT NULL AUTO_INCREMENT,
  `ip` varchar(25) NOT NULL,
  `date` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SCRIPT BASH:

#!/bin/bash
inputfile="demo.txt"
cat $inputfile | while read ip ; do
     echo "INSERT INTO demo (ip) VALUES ('$ip');"
        done | mysql -u root -proot demo;

O script acima insere ip na tabela, mas não atualiza a tabela. É atualizado somente se um novo registro for encontrado.

mysql Ver 15.1 Distrib 10.3.22-MariaDB, para Linux (x86_64) usando readline 5.1

informação relacionada