patsubst() の使用

patsubst() の使用

m4が単語の途中でマクロを置き換えるように説得する方法はありますか?

私はこのファイルday.m4が欲しい:

define(Sat,Cat)dnl
Saturday

そしてこのコマンドは:

m4 day.m4

次の出力を生成します。

Caturday

示されているように、m4はこれを行いません。

または、sedに同時に複数の置換を実行させる方法はありますか?つまり、交換するたびにファイルを渡す必要はありません。

複数のsedコマンドを一緒にリンクしたり、sedとm4の組み合わせを使用したりすることは悪くありませんが、1つの入力ファイルと1つのコマンドでこれを実行する便利な方法がある場合は、より良いでしょう。

他の一般的なツールも動作します。

私の目標は、テンプレートからファイルを作成するために使用することです。交換するトークンのほとんどはスペースで区切られます。

ベストアンサー1

必要なものは次のとおりです。

sed -e sub1 -e sub2 file

ここでsubの形式は次のとおりです。

s/sat/cat/g

すべての代替エントリをファイルに入れて、次のように実行することもできます。

sed -f scriptfile filetomodify

おすすめ記事