Как я могу произвести демонстрационные строки от .csv?

[

] Если у вас есть сокет P4 630 775, как и у меня, то вы можете легко запускать 64-битные операционные системы.[

]
1
12.02.2015, 08:33
3 ответа

Этот ответ предполагает, что ваш файл 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
2
27.01.2020, 23:37

Попробуйте следующее

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'
0
27.01.2020, 23:37
121 --- 111584-

Если ваши файлы 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
0
27.01.2020, 23:37

Теги

Похожие вопросы