Kshで動的検索と置換

Kshで動的検索と置換

作業中の機械は一定の命名パターンに従います。

ホスト[ドメイン]_[ID]

ここで、[ドメイン]は開発コンピュータの場合は「d」、実稼働コンピュータの場合は「p」、[id]はコンピュータごとに異なる2桁の文字列です。例:「hostp_a1」または「hostd_g5」。

新しい会社のポリシーのために2つのドメインを分離し、開発システムにはサフィックス「.dev」を追加し、本番システムには「.prd」を追加する必要があります。古いコンピュータは現在、「hostp_a1.prd」と「hostd_g5.dev」と呼ばれています。

私は古い習慣を変えたくないので、Kshが動的にこれを行う方法があるかどうか疑問に思います。これは私のためにこれを行うsedスクリプトです。

sed -e 's/host\([dp]\)_\(..\)/host\1_\2.\1/' -e 's/p$/prd/' -e 's/d$/dev/'

私が考えたいくつかの解決策は次のとおりです。

  • 正規表現エイリアス:

    私も同様のことができればalias host[dp]_..='....

  • トリガー:

    トリガーは、コマンドが入力されるたびにsedを実行します。パフォーマンスが若干低下する可能性がありますが、インタラクティブなので気にしません。

Kshでできる方法はありますか?以前のバージョンを使用することはおそらく役に立ちませんVersion M-11/16/88i。たぶん他のシェルもこれを行うことができますか?

(これを行っている間、私は現在学習しているので、sedより良いsedコマンドの提案がある人がいる場合はそうしてください。ありがとうございます。)

ベストアンサー1

おすすめ記事