at_shiita.ishigaki
2021年10月22日 10時04分
特定の文字列でファイルを分割するにはcsplitコマンドを使用します。
分割する文字列は/で囲む必要があります。
※ここでは例として、test.jsonファイルを { で分割します。
[armadillo ~]# cat test.json
{
"User" : [
{
"id": 1,
"tag": "a"
},
{
"id": 2,
"tag": "b"
},
{
"id": 3,
"tag": "c"
}
]
}
[armadillo ~]# csplit test.json { {*}
csplit: ‘{’: invalid pattern
[armadillo ~]# csplit test.json /{/ {*}
0
14
35
35
39
[armadillo ~]# ls
test.json xx00 xx01 xx02 xx03 xx04
[armadillo ~]# cat xx00
[armadillo ~]# cat xx01
"User" : [
[armadillo ~]# cat xx02
{
"id": 1,
"tag": "a"
},
csplitコマンドが成功した場合は分割したファイルのバイトサイズが表示されます。
また、デフォルトでは出力されるファイルは xx〇〇という形になります。
出力ファイルのxxを変更するには-fオプションを使用します。
[armadillo ~]# csplit -f FILE test.json /{/ {*}
0
14
35
35
39
[armadillo ~]# ls
FILE00 FILE01 FILE02 FILE03 FILE04 test.json
空のファイルを出力しない場合は-zオプションを使用します。
[armadillo ~]# csplit -z test.json /{/ {*}
14
35
35
39
[armadillo ~]# ls
xx00 xx01 xx02 xx03 test.json