Как отделить данные из файла csv большого размера в терминале Linux?

Если вы прочитаете сценарий bash, который составляет начало файла, вы увидите, что в нем есть строка вида

tail -n +532 "$THIS_PATH" | tar xf - --no-same-owner

. Если вы запустите ​​tail -n +532 для файла и перенаправите его в - он сообщит вам, что конечные данные - это

/dev/stdin: POSIX tar archive (GNU)

. Если вы сделаете тот же хвост, переданный в tar tf - , вы увидите, что tar содержит много файлов, таких как

pkgs/python-2.7.11-0.tar.bz2

, которые скрипт устанавливается с помощью функции extract_dist .

0
22.05.2019, 18:21
1 ответ

grep уже является очень быстрым способом просматривать большие файлы и находить слова или символы в строках, возможно, регулярное выражение -wword -делает его немного медленным. Часто медленный не сам grep, а в основном вывод на терминал. Вы можете просто проверить это, направив вывод в файл:

grep -w "for-outbound-sports\|2019-05-16" Master.csv > greped_master.csv

У вас всегда есть возможность использовать программу parallelдля разделения большого файла и использования многопоточности. например parallel --pipe --block 2M grep foo < bigfileКак вы можете найти здесь

2
28.01.2020, 02:30

Теги

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