如何使用最短 bash单行命令将log.txt
拆分为timeline.txt
和action.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
... ...
答案 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