Разделить и добавить заголовок в командной строке - PullRequest
0 голосов
/ 04 мая 2010

Какой самый простой способ разбить файл и добавить заголовок к каждому разделу?

Команда unix split делает все, что мне нужно, за исключением возможности добавить заголовок.

Есть ли какой-нибудь простой способ сделать это с помощью существующих инструментов, прежде чем я запишу его в сценарий?

1 Ответ

0 голосов
/ 04 мая 2010

Вероятно, это проще всего сделать либо в awk, либо в perl. Если вы не обрабатываете большие объемы данных, то, возможно, с помощью простого сценария оболочки для последующей обработки выведите split. Однако, это будет проходить через входные данные более одного раза, что может стать узким местом, если вы делаете это для какой-либо задачи онлайн-обработки данных. Должно работать что-то вроде следующего:

bash$ cat input-file | awk '
  BEGIN {
      fnum = 1
      print "HEADER" > fnum
  }
  {   if ((NR % 10) == 0) {
          close(fnum)
          fnum++
          print "HEADER" > fnum
      }
      print >> fnum
  }
'
bash$ wc -l input-file
     239 input-file
bash$ ls
1                19               6
10               2                7
11               20               8
12               21               9
13               22               input-file
14               23
15               24
16               3
17               4
18               5
bash$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...