3

単一行の正規表現を使用する-pと、次を使用できます$_.sub!

$ cat file.txt
<a
a>
c
$ ruby -i -pe '$_.sub!("a", "b")' file.txt
$ cat file.txt
<b
b>
c

複数行のパターンを置き換える簡単な方法はありますか?私は現在次のようなものを使用しています:

$ ruby -i -e 'print *readlines.join.sub(/<.*>/m, "d")' file.txt
$ cat file.txt
d
c
4

1 に答える 1

3

使用gets(nil)すると、なんと6文字節約できます:)

ruby -i -e 'print gets(nil).sub(/<.*>/m, "d")' file.txt

gets ドキュメントから:

オプションの引数は、レコード区切り文字を指定します。セパレータは、各レコードの内容に含まれています。nilの区切り文字は、内容全体を読み取ります。[...]

于 2013-02-03T17:44:59.757 に答える