この記事では便宜上、samのコマントじゃない文字@
で行コメントを付与してる。
テキスト中の"fred"と"jim"を入れ替える
,x/[A-Za-z]+/{
g/fred/v/...../c/jim/
g/jim/v/..../c/fred/
}
意味を付けてみた
@ テキスト全体について
,
@ 次にマッチする各部分文字列に対し、{}内の内容を順に行う。
x/[A-Za-z]+/{
@ fredを含み、かつ5文字の文字列を含まないのであれば、
g/fred/ v/...../
@ jimに置換する。
c/jim/
@ jimを含み、かつ4文字の文字列を含まないのであれば、fredに置換する。
g/jim/ v/..../ c/fred/
}
例
$ rlwrap sam -d
-.
a
fred jim jim fred freddy jimmy effreda mijimij
.
,=
1; #0,#47
,p
fred jim jim fred freddy jimmy effreda mijimij
,x/[A-Za-z]+/{
g/fred/v/...../c/jim/
g/jim/v/..../c/fred/
}
,
jim fred fred jim freddy jimmy effreda mijimij