我需要一个匹配
的正则表达式/ grep / sed /表达式"F:\vol2\home\USERNAME" /grant ...
并且不匹配任何类似
的内容"F:\vol2\home\USERNAME\subfolder" /grant ...
"F:\vol2\subfolder\subfoler2" /grant ...
"F:\vol2\home" /grant
显然,'USERNAME'是一个变量,需要这样对待。我在想'home \\ [A-Za-z] * [^ \\]',但这显然不起作用。
答案 0 :(得分:1)
awk '/home\\[^\\]+\"/{print $1}'
似乎有效。
在perl中,这也有效:
while (<>) {
print if (/\"F:\\vol2\\home\\[^\\]+\"/);
}
答案 1 :(得分:1)
awk -F '\\' -v user=USERNAME 'NF==4 && $3=="home" && $4 ~ "^"user'
拆分反斜杠,必须有4个字段,第三个是“home”,第四个字段以 user 变量开头
答案 2 :(得分:0)
grep'\ vol2 \ home \'$ {USERNAME}'''x2
答案 3 :(得分:0)
如果您的路径始终是第一个字段,
awk '$1~/home\\[^\\]+\"/{print $1}'
或者您可以在\
上拆分第一个字段,并检查令牌数为4
$ ruby -ane 'puts $F[0] if $F[0].split("\\").size==4 && /home/' file
"F:\vol2\home\USERNAME"