как удалить последние строки из файла CSV - PullRequest
1 голос
/ 08 января 2020

Я вставляю SQL результат запроса в файл CSV. В конце файла добавляются две строки, как показано ниже. Может кто-нибудь сказать, пожалуйста, как удалить эти две строки (строка банка и «168 строк выбрано»). Также было бы хорошо, если бы эти строки не вставлялись в csv-файл в первую очередь при вставке sql результата запроса в csv-файл.

pvm:0a12dd82,pvm:0a12dd84,TechnicalErrorProcess,21-JUN-19 07.01.58.560000 AM,pi_halted,38930,1
pvm:0a12dd77,pvm:0a12dd79,TechnicalErrorProcess,20-JUN-19 12.36.27.384000 PM,pi_halted,1572846,1
pvm:0a12dd6t,pvm:0a12dd6v,TechnicalErrorProcess,20-JUN-19 12.05.22.145000 PM,pi_halted,38929,1
pvm:0a12dd4h,pvm:0a12dd4l,TechnicalErrorProcess,17-JUN-19 07.11.43.522000 AM,pi_halted,9973686,1

168 rows selected.

Ответы [ 3 ]

4 голосов
/ 08 января 2020

Для MS SQL, перед запросом выбора добавьте следующее:

set nocount on; select ...

Я не уверен, будет ли это работать для других баз данных.

2 голосов
/ 08 января 2020

Отфильтруйте вывод команды выше, чтобы исключить две последние строки.

Я вижу два способа сделать это с помощью команды bash:

head --lines=-2

Или

sed -e '/rows selected/d' -e '/^ *$/d'

(Действительно, это был заполнитель).

1 голос
/ 08 января 2020

Вы можете указать отрицательное число для параметра -n, используя команду head:

-n, --lines = [-] K вывести первые K строк вместо первые 10; с начальным символом «-» выведите все, кроме последних K строк каждого файла

так:

head -n -2 input-file.txt > output-file.txt
...