まいど!福地です。
どもども!花粉症で外出が億劫になっている、すーです!
もうすっかり春ですね🌸そしてもう言うてる間に4月ですね💦
また新しい1年が始まりますが、みなさん新しい目標は決めましたか??
僕の目標は
健康でいること!
です!これにつきます(‘ω’)
とまあ余談はここまでにしておいて、今回のお題は
コマンドラインを使ってCSVファイルの行数を抜き出そう!
です!
「データの中身ではなくいくつデータが入っているかを知りたい」という相談があり、データの行数くらい簡単に取得できへんかな?と思ったところ、ありましたありました!
コマンドラインで行数取得できる方法ありました!!
今回はこのようなデータを使って行数を取得したいと思います!
ということで、早速やってみましょう(*´▽`*)
※この記事で使用しているDSのバージョン:10.7.0.4
変数の準備をしよう!
まずは以下の変数を準備します↓
・対象ファイルパス(Short Text):取得したいCSVデータのフルパス
・実行結果(Long Text):コマンドラインの実行結果を格納する変数
・csvレコード(Short Text):データの行数を格納する変数
※ファイルに関しては今回は1つのファイルですが、複数のファイルを選択の場合は「ファイル繰り返し」ステップにて対応できます!その際はファイルパターンは「.*.csv」にしてください。
「 コマンドライン実行 」ステップを使おう!
ここからが本題ですね(^^♪
①コマンドライン実行ステップを入れる
csvデータの行数を取得するコマンドは以下の通りです↓
find /v /c “” 対象ファイルのフルパス
たったこれだけです(^^)これを変数を加えてコマンドラインに入力しちゃいましょう!
次に「抽出」にて「Stdout」を選択し、保存場所(コマンドラインの出力結果)に作成した変数「実行結果」を選択します。
②コマンドライン実行結果が変数「実行結果」に格納されているかを確認する
実行結果から数字を取得しよう!
変数「実行結果」には行数以外に余分なものが含まれてます。必要なのは行数ですので、ここでは行数のみを抜き出してみましょう(‘ω’)ノ
①「変数の変換」ステップを入れる
変数「実行結果」から行数を抜き出し、変数「csvレコード」に入れる設定をここで組みます。
「+」より、「抽出」→「高度な抽出」を選択します。
②正規表現で「:」より後ろを取得する
今回必要なのは行数です。行数は「:」より後ろの数字になるので、正規表現にて「:」より後ろを取得するパターンを入れます。
「:」より後ろを取得するパターン↓
(.)([:][^]+$)
「テスト」を押すとパターンが表示されるので、対象のパターン(ここでは「$2」)を確認し、「OK」を押す
「エクスプレッションを出力」にて「$2」を入力する
確認できれば「OK」を押します。
③「+」を押し、「数値の処理」→「数値を抽出」を選択する
↓
④エンドステップを押し、数値のみになっているか確認する
※ヘッダーを含む場合はAssignステップを入れ 、「csvレコード」から-1してください↓
以上になります( `ー´)ノ
ここまで見ていただきありがとうございました(^O^)/
最後に
いかがでしたか?
あまり使うことは無いかもしれませんが、知識の一つとして覚えておいてもいいかもしれませんね!
そして 改めて コマンドラインが便利だと痛感しました(;^ω^)
コマンドラインのみならず、他のステップでも効率の良い使い方をこれからも模索していきたいと思います!
また、「こういう方法もあるよ!」「こっちの方が便利やで!」「それ違います!」等あるかと思いますので、遠慮せずどしどしコメントください!
ではでは、初めてBizRobo!を触る方が楽しくロボットを作れるよう、そしてBizRobo!を好きになってくれるようなサイトを心がけていきますので、これからもどうぞよろしくお願いいたします(*ノωノ)
目指せ!
今日からBizRober!
(∩´∀`)∩
コメント