SSブログ

SPICEネットリストの折り返し行をくっつける [シェルスクリプト]

SPICEネットリストでは、長い1行には途中に改行を入れて折り返すことができますが、その際、折り返された行の行頭には「+」マークを付けることになっています。

これが、シェルやawkで処理する際に障壁になります。

そこで、前処理として、「+」で始まる行を前の行にくっつけて1行にしてしまうことにします。

シェルやawkが扱える1行の文字数には上限があります(昔のSunOSでは1024文字だったような)が、面倒になるのでここでは無視します。使用上の制約としておきます。

出来上がったawkスクリプトが以下です。attachという名前にしました。なかなかシンプルで気に入っています。もっとシンプルにできるものでしょうか。


#!/bin/awk -f
/^\+ /{
  LINE = LINE substr($0, 3)
  next
}
{
  if (LINE != "") {
    print LINE
  }
  LINE = $0
}
END{
  print
}

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。