为什么要使用ruby-l(ELL)标志?
从手册页 (小写字母“ell”)启用自动换行 处理,这意味着首先将$\设置为$/,然后 第二,用chop!把读到的每一行都切掉 我可以构造一个开关工作的示例:为什么要使用ruby-l(ELL)标志?,ruby,Ruby,从手册页 (小写字母“ell”)启用自动换行 处理,这意味着首先将$\设置为$/,然后 第二,用chop!把读到的每一行都切掉 我可以构造一个开关工作的示例: ➜ 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" "$
➜ 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
正在将$/
加载到$\
中,但您为什么要这样做?希望使用此开关的一些示例和/或引用:)它可能最适用于-n或-p。它允许您编辑当前行($。
),而不必关心尾随的换行符。例如,要在每行末尾附加“foo”:
$ echo -e "1\n2\n3" | ruby -lnpe '$_ << "foo"'
1foo
2foo
3foo
请注意,您可以指定输入记录分隔符:
echo -n "1-2-3-" | ruby -l055 -npe '$_ << "foo"'
1foo
2foo
3foo
所有这些开关都来自Perl,请参阅
$ echo -e "1\n2\n3" | ruby -npe '$_.chop!; $_ << "foo"'
1foo2foo3foo
echo -n "1-2-3-" | ruby -l055 -npe '$_ << "foo"'
1foo
2foo
3foo
echo -n "1-2-3-" | ruby -0056 -l055 -npe '$_ << "foo"'
1foo.2foo.3foo.