来自手册页
(小写字母``ell''。)启用自动换行 处理,这意味着首先将$ \设置为$ /的值,然后 其次用印章剁掉每一行!
我可以构建一个开关工作的例子:
➜ ruby-ell cat app.rb
p "hello world"
p "$\: #{$\}"
p "$\: #{$/}"
➜ ruby-ell ruby app.rb
"hello world"
"$: "
"$: \n"
➜ ruby-ell ruby -l app.rb
"hello world"
"$: \n"
"$: \n"
所以我可以看到-l
正在将$/
加载到$\
中,但为什么要这样做呢?会喜欢一些示例和/或对使用此开关实例的引用:)
答案 0 :(得分:1)
对于 -n 或 -p ,它可能最有用。它允许您编辑当前行($_
)而无需关心尾随换行符。例如,要将“foo”附加到每行的末尾:
$ echo -e "1\n2\n3" | ruby -lnpe '$_ << "foo"'
1foo
2foo
3foo
如果没有 -l </ strong>,它会在换行符之后附加“foo”:
$ echo -e "1\n2\n3" | ruby -npe '$_ << "foo"'
1
foo2
foo3
foo
如果不设置记录分隔符,简单的chop!
就会删除所有换行符:
$ echo -e "1\n2\n3" | ruby -npe '$_.chop!; $_ << "foo"'
1foo2foo3foo
请注意,您可以指定输入记录分隔符:
echo -n "1-2-3-" | ruby -l055 -npe '$_ << "foo"'
1foo
2foo
3foo
055是-
的八进制值。
您还可以通过 -0 :
指定输出分隔符echo -n "1-2-3-" | ruby -0056 -l055 -npe '$_ << "foo"'
1foo.2foo.3foo.
所有这些开关都来自Perl,请参阅http://perldoc.perl.org/perlrun.html#Command-Switches