LoginSignup
0
0

More than 5 years have passed since last update.

nysol (MCMD) (1) 4桁の文字列を、00 補完で6桁にする。

Last updated at Posted at 2016-07-18

4桁の文字列を、6桁にする。

nysol を実際に触っている人向けの文章です。

nysol は、基本的なデータ処理機能があって、組み合わせで実現できるようになっています。PHPのように、関数一発でやってくれるわけではないです。そこで、こんなことができるというのを書いていきます。他の言語でももちろんできますが、nysol ではこんな感じできるという事例提示です。
タイプコストでいくと他言語よりはタイプ数がすくなくてすみます。

こんなデータがあります。コード(hs)が、4桁だったり、6桁だったりします。
4桁の場合は、00 をつけて、6桁にしたいのです。下記の例では、
馬 0101を、010100 にします。

データ(temp.1)

hs,hs_name
0101,−_馬
0102,−_家畜のもの
010229,−_水牛
010310,−_その他のもの

処理するスクリプト

#!/bin/sh
mcal i=temp.1 c='length($s{hs})' a=len |
mcal c='if(${len}==4,"00","")' a=zero |
mcal c='cat("",$s{hs},$s{zero})' a=hs6 

説明

1.ファイル名 temp.1 を読み込みます。ファイルオープンが、i= の2文字です。
1.hs の項目の文字列長を新規項目 len として追加します。
2.項目長 len が、4 なら、新項目zero を、00 とし、4でないなら、空白として追加します。
3.もとの項目 hs と zero を結合して、新項目 hs6 を追加します

結果

hs,hs_name,len,zero,hs6
0101,−_馬,4,00,010100
0102,−_家畜のもの,4,00,010200
010229,−_水牛,6,,010229

データ処理では、コード変換はしばしば行われます。どんな言語でやってもいいのですが、
タイプコストという点では、nysol は優れていると思いますが、どうでしょうか?

馬の部分が、-_馬 となっているのは、処理おわってから対応予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0