Perl 删除新行
Perl Removing New Line
我似乎无法从我通过在 linux 服务器上执行命令获得的输出中删除新行,并且尝试了几种不同的方法
这是我的代码第一次尝试
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
chomp ($location);
print "before\n";
print "$location";
print "after\n";
输出,不起作用,它会换行打印。
before
Location: http://www.google.com/
after
第二次尝试
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
$location =~ s/\n//g;
print "before\n";
print "$location";
print "after\n";
输出,还是不行
before
Location: http://www.google.com/
after
原始Shell输出
[user@localhost dir]# curl -m 5 -sI 216.58.219.206 | grep "Location:"
Location: http://www.google.com/
[user@localhost dir]#
也不起作用,我仍然看到一个新行。
我错过了什么吗?
卷曲响应返回 \r\n 而不仅仅是 \n.
用od(octal-dump)自己看(-c表示显示字符):
curl -m 5 -sI 216.58.219.206 | grep Location: | od -c
0000000 L o c a t i o n : h t t p : /
0000020 / w w w . g o o g l e . c o m /
0000040 \r \n
0000042
您需要删除这两个字符。
$location =~ s|\s*$||; # Remove all trailing whitespace
您可以使用 tr
删除制表符、空格、换行符和回车符 return
curl -m 5 -sI 216.58.219.206 | grep Location: | tr -d '120'
我似乎无法从我通过在 linux 服务器上执行命令获得的输出中删除新行,并且尝试了几种不同的方法
这是我的代码第一次尝试
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
chomp ($location);
print "before\n";
print "$location";
print "after\n";
输出,不起作用,它会换行打印。
before
Location: http://www.google.com/
after
第二次尝试
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
$location =~ s/\n//g;
print "before\n";
print "$location";
print "after\n";
输出,还是不行
before
Location: http://www.google.com/
after
原始Shell输出
[user@localhost dir]# curl -m 5 -sI 216.58.219.206 | grep "Location:"
Location: http://www.google.com/
[user@localhost dir]#
也不起作用,我仍然看到一个新行。 我错过了什么吗?
卷曲响应返回 \r\n 而不仅仅是 \n.
用od(octal-dump)自己看(-c表示显示字符):
curl -m 5 -sI 216.58.219.206 | grep Location: | od -c
0000000 L o c a t i o n : h t t p : /
0000020 / w w w . g o o g l e . c o m /
0000040 \r \n
0000042
您需要删除这两个字符。
$location =~ s|\s*$||; # Remove all trailing whitespace
您可以使用 tr
删除制表符、空格、换行符和回车符 returncurl -m 5 -sI 216.58.219.206 | grep Location: | tr -d '120'