LoginSignup
1
1

More than 5 years have passed since last update.

SIMAファイルから画地名称を取り出す

Posted at

一部修正として送られてくるSIMAファイルに含まれる画地の名称を取り出すスクリプトを書いてみました。
標準出力に出てきた画地名称をWingNeo INFINITYのワイルドカード選択に突っ込むと変更のあった画地だけを選択できます。

$SIMA = Get-Content $args

$SIMA | foreach {
   if ( $_ -match "^D00") {
      Write-Output $_.Split(',')[2].Replace(" ","")
   }
}

スクリプトの引数としてSIMAファイルのパスを渡すと$argsに渡されて$SIMA変数に内容を読み込みます。
foreachで行ごとに呼び出して「D00」で始まる行($_)があったら「,」で配列に分割してから2番目のカラム=画地名称を取り出します。
測量ソフトによってはカラムの文字数を合わせるために半角スペースで埋めているものがあるので容赦なく半角スペースは消しています。

本当はワンライナーで書きたかったのですが、順を追ってワンライナーを目指してみます。

なお、普段はWindows用テキストエディタのxyzzyにSIMAファイルをドロップしてからC-x #でfilter-bufferに対してRubyのワンライナーで取り出しています。

ruby -ne "puts $_.split(',')[2].gsub(' ','') if $_ =~ /^D00/"

測量ソフトを操作するときはマウスも使ってるのでPowerShellでスクリプトに突っ込むよりxyzzyとRubyの組み合わせの方g(ry

1
1
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
1
1