8.15. cat 文字列併合

  • 書式1: cat(token,str_1,str_2,...)

\(token\) を区切り文字として、指定された \(str_i\) をその順番に併合して一つの文字列を生成する。 \(token\) として空文字 "" を指定すれば、文字列の単純な結合となる。

利用例

importと入力データ(CSV)の準備

 1import nysol.mcmd as nm
 2
 3with open('dat1.csv','w') as f:
 4  f.write(
 5'''id,str1,str2,str3
 61,abc,def,ghi
 72,A,,CDE
 83,,,
 94,,,XY
10''')

基本例

3つの項目str1,str2,str3を "#" の区切り文字を挿入して併合する。

1nm.mcal(c='cat("#",$s{str1},$s{str2},$s{str3})', a='rsl', i="dat1.csv", o="rsl1.csv").run()
2### rsl1.csv の内容
3# id,str1,str2,str3,rsl
4# 1,abc,def,ghi,abc#def#ghi
5# 2,A,,CDE,A##CDE
6# 3,,,,##
7# 4,,,XY,##XY

tokenが空文字の場合

1nm.mcal(c='cat("",$s{str1},$s{str2},$s{str3})', a='rsl', i="dat1.csv", o="rsl2.csv").run()
2### rsl2.csv の内容
3# id,str1,str2,str3,rsl
4# 1,abc,def,ghi,abcdefghi
5# 2,A,,CDE,ACDE
6# 3,,,,
7# 4,,,XY,XY

ワイルドカードを利用した例

str から始まる項目( str1,str2,str3 )をワイルドカード「 str* 」によって指定している。

1nm.mcal(c='cat("",$s{str*})', a='rsl', i="dat1.csv", o="rsl3.csv").run()
2### rsl3.csv の内容
3# id,str1,str2,str3,rsl
4# 1,abc,def,ghi,abcdefghi
5# 2,A,,CDE,ACDE
6# 3,,,,
7# 4,,,XY,XY