我试图弄清楚perl正则表达式以提取以下值:( / home / mail / dump dirs总是相同的)。感谢。
abc
123456
这是输出:
drwxr-xr-x - mail_hd mail_users 0 2011-03-26 20:12 /home/mail/dump/abc
drwxr-xr-x - mail_hd mail_users 0 2011-04-15 09:10 /home/mail/dump/123456
答案 0 :(得分:2)
答案 1 :(得分:1)
这类似于this.
拆分“/”并获取最后一项
awk -F"/" '{print $NF}' file
Ruby(1.9+)(类似于Perl)
$ ruby -ne 'print $_.sub(/.*\//,"")' file
abc
123456
$ ruby -F"/" -ane 'print $F[-1]' file
abc
123456
答案 2 :(得分:1)
以下perl正则表达式将仅在最后的正斜杠之后给出字符。
s=.*/==
示例:
$ echo 'wxr-xr-x - mail_hd mail_users 0 2011-03-16 18:46 /home/mail/dump/abc' | perl -pe 's=.*/=='
abc
答案 3 :(得分:0)
也许这很有用,应该返回你需要的东西。
if ($subject =~ m!/home/mail/dump/(.*)$!) {
$result = $1;
} else {
$result = "";
}
它匹配/home/mail/dump/
之后的所有内容,直到行结束