【Python】 pybind11を利用してPythonからC++の関数を利用する方法
salmoncode
TechTopic
過去ブログのデータを移行しようとエクスポートしたら、1 つの MT ファイルとして出力されてしまいました。
仕方ないので、いい感じにファイルを分割したいと思ったのですがコードを書くのは面倒です…
そこで調べてみたところ、`csplit`というコマンドで正規表現による分割ができるようですね。
ちょっと使い方に癖があったのでメモしておきます。
まず、Mac の csplit コマンドは Linux のそれと仕様が違います。**
ググって出てきた使い方だとうまく動かないという罠があります w
なので、まずは gnu 版をインストールしましょう。
brew install coreutils
基本的なコマンドは以下の通りです。
gcsplit [counter]
例えば以下のような`sample.txt`があったとします。
aaa
bbb
ccc
aaa
bbb
ccc
ここで以下のコマンドを打つと、
gcsplit sample.txt /bbb/
こうなります
ファイル 1
aaa
ファイル 2
bbb
ccc
aaa
bbb
ccc
元ファイル 5 行目の`bbb`でも分割したい場合は`counter`を設定します。
gcsplit sample.txt /bbb/ {2}
するとこんな感じに
ファイル 1
aaa
ファイル 2
bbb
ccc
aaa
ファイル 3
bbb
ccc
つまり、ヒットしたパターンの行の直前で分割されるようですね。
ちなみに、ヒットした行全て分割したい場合は以下のようにします。
gcsplit sample.txt /bbb/ {*}
シンプルに指定できてなかなか便利なコマンドですね。
こういったテキスト処理系は魔術にならない程度にコマンドを駆使して高速化しましょう。