Linux 提示符中的换行符?

发布于 2024-12-11 21:10:46 字数 317 浏览 0 评论 0原文

我在 Perl 中使用 qx 在 Linux 机器中执行命令。

我正在尝试解析 Perl 中的一些输出,但不知道如何替换多行输出中的换行符。

我一直在尝试这样的事情:

$result =~ s/\\n/||/g;

我似乎记得一些操作系统的“\r”,并且我一直在尝试与“\n”的不同组合。

另外,我开始有一堆看起来像这样的行,并且想将它们组合起来:

$result =~ s/ bytes from /|/g;
$result =~ s/ \(/|/g;

I am using qx in Perl to execute commands in a Linux machine.

I'm trying to parse some output in Perl but don't know how to replace the new-line character in multi-line output.

I have been trying something like this:

$result =~ s/\\n/||/g;

I seem to recall a '\r' with some OSs and I have been trying different combinations with '\n'.

Also, I am starting to have a bunch of lines that look like this, and would like to combime them:

$result =~ s/ bytes from /|/g;
$result =~ s/ \(/|/g;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红颜悴 2024-12-18 21:10:46

如果 \ 是特殊序列的开始(如果它后面跟着一个字母),或者它导致下一个字符按字面匹配(如果它后面跟着一个非字母)。因此,

s/\\n/

匹配 \ 后跟 n\n 是一个与换行符匹配的特殊序列,所以你想要

/\n/

所以你可以使用

my $result = qx{ ... };
$result =~ s/\n/||/g;

perlre


关于其余的,

$result =~ s/ bytes from /|/g;
$result =~ s/ \(/|/g;

很简单

$result =~ s/ bytes from | \(/|/g;

If \ is either the start of special sequence (if it's followed by a letter), or it causes the next character to be matched literally (if it's followed by a non-letter). Therefore,

s/\\n/

matches \ followed by n. \n is a special sequence that matches a newline, so you want

/\n/

So you could use

my $result = qx{ ... };
$result =~ s/\n/||/g;

perlre


Regarding the rest,

$result =~ s/ bytes from /|/g;
$result =~ s/ \(/|/g;

is simply

$result =~ s/ bytes from | \(/|/g;
心欲静而疯不止 2024-12-18 21:10:46

一方面,您不应该使用双反斜杠。

操作方法如下:

$text = <<EOS;
div class equals main
span id equals marquee
blog! slash span slah div
EOS

print "Before: $text \n\n\n\n";

$text =~ s/\n/\|\|/g;

print "After: $text \n\n\n\n";

这是一个键盘:http://codepad.org/k0oA2YX4

You shouldn't be using double backslashes, for one thing.

Here is how you can do it:

$text = <<EOS;
div class equals main
span id equals marquee
blog! slash span slah div
EOS

print "Before: $text \n\n\n\n";

$text =~ s/\n/\|\|/g;

print "After: $text \n\n\n\n";

Here is a codepad for it: http://codepad.org/k0oA2YX4

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文