Общий файл журнала mysql выглядит так ...
110822 14:41:14 103700 Query SHOW FULL TABLES FROM `engine` LIKE 'PROBABLYNOT'
103700 Query SHOW FULL TABLES FROM `engine` LIKE 'PROBABLYNOT'
110822 15:01:14 103701 Query SHOW FULL TABLES FROM `dbname` LIKE 'PROBABLYNOT'
Идентификатор потока 103701 можно найти в начале или в позиции номер 3 (после даты и времени). Я использую следующую команду, чтобы найти все запросы, выполняемые в конкретном потоке.
grep -w '103701' /var/log/mysql/general.log | cut -c 1-1000 | хвост -10
Это показывает множество строк, где упоминается номер 103701. Я ищу этот номер только на первой или третьей позиции. Какая должна быть правильная инструкция grep для этого?
Ты можешь использовать awk
сделать это:
$ awk '$1 == "103701" || $3 == "103701" { print $0 }' mysql-general.log