3

使用单行正则表达式,您可以使用-pand $_.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 回答