Как я могу изменить, куда unix pipe отправляет свои результаты для команды split? - PullRequest
5 голосов
/ 03 декабря 2010

В основном я делаю это:

export_something | split -b 1000

, который разбивает результаты экспорта на имена файлов xaa, xab, xac все 1000 байтов каждое

, но я хочу, чтобы мой вывод изsplit для перехода на файлы с определенным префиксом.Обычно я просто делаю это:

split -b <file> <prefix>

, но при добавлении префикса нет флага для префикса.То, что я ищу, это способ сделать это:

export_something | split -b 1000 <output-from-pipe> <prefix>

Возможно ли это?

Ответы [ 4 ]

12 голосов
/ 03 декабря 2010

Да, - обычно используется для обозначения стандартного ввода или стандартного вывода, в зависимости от того, что имеет больше смысла. В вашем примере

export_something | split -b 1000 - <prefix>
3 голосов
/ 03 декабря 2010

Использование - для ввода

Вывести фрагменты INPUT фиксированного размера в PREFIXaa, PREFIXab, ...;

размер по умолчанию - 1000 строк, а по умолчанию PREFIX - `x».

Если нет INPUT или когда INPUT равен -, прочитайте стандартный ввод.

export_something | split -b 1000 - <prefix>
1 голос
/ 03 декабря 2010

используйте - в качестве ввода, поскольку split --help говорит

0 голосов
/ 03 декабря 2010

Вы можете использовать встроенное выражение (или как оно называется, я никогда не помню), чтобы экспортировать данные непосредственно в функцию в виде строки:

 split -b 1000 "`export_something`" <prefix>

Надеюсь, это сработает.

...