] Если у вас есть сокет P4 630 775, как и у меня, то вы можете легко запускать 64-битные операционные системы.[
] Этот ответ предполагает, что ваш файл CSV имеет одну строку на строку, что означает, что нет продолжающихся линий. Если файл называется db.csv
, то вы можете получить 10 строк, включая первый и последний, используя:
awk 'FNR==NR{next} FNR==1{n=NR-1} FNR>x || FNR==n{x+=n/9;print}' db.csv db.csv
, потому что файл CSV перечислен дважды на команду линия, awk
будет прочитать его дважды. Первый используется для получения общего количества строк. Второй раз используется для печати 10 выбранных строк.
FNR == NR {Далее}
NR
- это общее количество записей (строк), прочитанные до сих пор. Номер записи файла, FNR
, равен общему количеству Записи (строки) прочитаны так далеко от этого файла. Итак, когда FnR == NR
, мы все еще читаем первый файл. Если это так, мы просто прыгаем в следующую запись
.
FnR == 1 {n = nr-1}
Если мы достигнем этой команды, это означает, что мы находимся на первой строке второго чтения. В этом случае мы знаем, что общее количество записей в файле NR-1
. Мы сохраняем это число как N
.
FNR> X || Fnr == n {x + = n / 9; print}
Одна первая строка второго чтения, fnr == 1
и x = 0
. Таким образом, FnR> X
и мы распечатаем эту строку. Затем мы увеличиваем x
N / 9 N / 9
и напечатайте строку в следующий раз, чтобы FNR> x
и так далее.
Условие fnr == n
Устраните, что последняя строка в файле будет напечатана.
Давайте создадим файл с 101 строками:
$ seq 101 >db.csv
Теперь мы можем использовать команду awk
для печати 10 строк из файла, включая первый и последний:
$ awk 'FNR==NR{next} FNR==1{n=NR-1} FNR>x || FNR==n{x+=n/9;print}' db.csv db.csv
1
12
23
34
45
57
68
79
90
101
Попробуйте следующее
SELECT your_column1, your_column2
FROM your_table_name
INTO OUTFILE '/tmp/ouput.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
, который работает для Linux В Windows заменить
INTO OUTFILE '/tmp/output.csv'
с
INTO OUTFILE 'c:\output.csv'
Если ваши файлы CSV не ограничены и содержат Newlines, и запятыми в значениях поля, вы должны использовать настоящую библиотеку анализа CSV, например, Один доступный стандарт в Python:
import csv
def select_evenly(file_name, nr):
rows = []
with open(file_name) as fp:
for row in csv.reader(fp):
rows.append(row)
nr_rows = len(rows)
step = (nr_rows - 2.0) / (nr - 1)
yield rows[0]
for x in range(1, nr-1):
yield rows[int(x * step + 0.5)]
yield rows[-1]
for line in select_evenly("test.csv", 10):
print line