как разбить текстовый файл по вертикали - PullRequest
0 голосов
/ 22 мая 2011

Как разделить log.txt на timeline.txt и action.txt, используя однострочную команду bash *1005*?

tee <log.txt >(cut -d' ' -f1 >timeline.txt) >(cut -d' ' -f2- >action.txt)

Но это слишком долго, и дублирование cut.

log.txt

[00:00] Do A
[02:24] Do B
[16:12] Do C
... ...

timelime.txt

[00:00]
[02:24]
[16:12]
... ...

action.txt

Do A
Do B
Do C
... ...

Ответы [ 3 ]

1 голос
/ 21 декабря 2011
$ awk '{print $1 > "timelime.txt"; $1=""; print > "action.txt"}' log.txt
1 голос
/ 22 мая 2011

Вы хотите использовать cut:

$ cut -f1  -d' ' log.txt > timelime.txt
$ cut -f2- -d' ' log.txt > action.txt

Я предполагаю, что у вас есть один пробел после "]" и вы работаете в системе Unix.

0 голосов
/ 22 мая 2011

В этом вопросе вы выражаете беспокойство по поводу того, что коллировали дважды; вот метод, который читает входные данные только один раз:

sed 'h; s/[^ ]&#42; //; waction.txt
x; s/ .&#42;//; wtimeline.txt' log.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...