如何从多行变量中删除几行?
我从 Expect 那里得到了这类东西,需要稍微整理一下
$var='
total 20
drwxr-xr-x 5 drew.jess users 4096 2013-01-22 15:51 bash
drwxr-xr-x 2 drew.jess users 4096 2011-11-11 10:37 diff
drwxr-xr-x 8 drew.jess users 4096 2012-02-14 09:09 expect
drwxr-xr-x 3 drew.jess users 4096 2011-10-06 11:05 perl
drwxr-xr-x 3 drew.jess users 4096 2013-02-07 13:10 python
drew ~ $
';
那些空行代表了我所拥有的。理想情况下,我想让 $var 看起来像这样:
$var='
total 20
drwxr-xr-x 5 drew.jess users 4096 2013-01-22 15:51 bash
drwxr-xr-x 2 drew.jess users 4096 2011-11-11 10:37 diff
drwxr-xr-x 8 drew.jess users 4096 2012-02-14 09:09 expect
drwxr-xr-x 3 drew.jess users 4096 2011-10-06 11:05 perl
drwxr-xr-x 3 drew.jess users 4096 2013-02-07 13:10 python
';
我应该澄清一下;对我来说这个问题的重要部分是删除以下行:
drew ~ $
空白,我想我可以应付。
最佳答案
您始终可以使用正则表达式替换:
$var =~ s/^\s*$//gm;
\s*
将匹配换行符,但也会匹配您可能不想要的其他空格。 ^
和 $
以及行 anchor 的开头和结尾。 /m
修饰符允许 anchor 在字符串内部、行的开头/结尾处(例如换行符处)进行匹配。
关于perl - 从多行变量中删除最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14894235/