csplit是將一個文件分成數個小區塊的工具
如果有個檔案text內容為:
Title 1
aaa
bbb
Title 2
ccc
ddd
Title 3
eee
fff
想根據"Title"來分段:
$ csplit text -s -f title -b "%02d.log" /Title/ {*}
-s: 靜默模式
-f: 產生的檔名的前綴, 這邊為titlexxx
-b: 產生的檔名的後綴, 這邊為xxx00.log
/Title/: Parse用來分段的pattern
{*}: 執行pattern的次數, {1}為找一次, *為找到沒有為止
執行結束後會產生幾個檔案:
title00.log title01.log title02.log title03.log
通常會發現第一個檔案(title00.log)是空的
因為第一個檔案存的是第一個Title之前的資料,
如果text內容如下:
zzz
Title 1
aaa
bbb
...
那title00.log內容就會是zzz
其他依序如下
title01.log:
aaa
bbb
title02.log:
ccc
ddd
title03.log:
eee
fff
注意檔案內容不會包含pattern
沒有留言:
張貼留言