如何垂直拆分文本文件

时间:2011-05-22 05:00:53

标签: command-line

如何使用最短 bash单行命令将log.txt拆分为timeline.txtaction.txt

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 个答案:

答案 0 :(得分:1)

您想使用cut

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

我假设你在“]”之后有一个空格,并且你在Unix-ish系统上。

答案 1 :(得分:1)

$ awk '{print $1 > "timelime.txt"; $1=""; print > "action.txt"}' log.txt

答案 2 :(得分:0)

在这个问题中,你表示担心两次打电话;这是一个只读取输入一次的方法:

sed 'h; s/[^ ]* //; waction.txt
x; s/ .*//; wtimeline.txt' log.txt