从 perforce 输出中仅提取仓库路径

发布于 2024-11-14 02:30:09 字数 191 浏览 3 评论 0原文

已经在这里尝试了一些“提取字符”问题,但没有成功。 在 grep -o

示例输入中使用它: //blah/blah/foo.txt#7 - 由 blah@blah 编辑更改 12526(文本)

我想要得到: //blah/blah/foo.txt

现在我正在使用正则表达式 '/[^#]*/' 但我得到 //废话/废话/

Already tried a few of the "Extract up to a character" questions here, none work.
Using this in grep -o

example input:
//blah/blah/foo.txt#7 - edit change 12526 (text) by blah@blah

I want to get:
//blah/blah/foo.txt

Right now I am using the regex '/[^#]*/' but I get
//blah/blah/

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

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

发布评论

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

评论(4

淡淡绿茶香 2024-11-21 02:30:10

grep 不使用斜杠来分隔模式,因此斜杠是按字面匹配的。

尝试:

echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | grep -o '/[^#]*'

请注意,如果“文本”中包含斜杠,则该部分也将匹配,因此将由 grep -o 打印。所以我会选择这样的东西:(

echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | sed 's/#.*//'

当然,这两个都假设你的文件名中没有#。)

grep does not use slashes to delimit the pattern, so the slashes are being matched literally.

Try:

echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | grep -o '/[^#]*'

Note that if the "text" has a slash in it, that part will also match and will therefore be printed by grep -o. So I would go with something like this:

echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | sed 's/#.*//'

(Both of these assume there is no # in your file names, of course.)

拥有 2024-11-21 02:30:10

使用剪切

<无论需要什么才能获得输出> | cut -f1 -d"#"

因此,如果您正在 grep 文件或类似内容的内容。

grep -o“任何文本”inputFile | cut -f1 -d"#"

-d"#" 表示使用“#”作为分隔符,-f1 表示第一个字段。

Use cut.

<whatever it takes to get your output> | cut -f1 -d"#"

So, if you are grepping contents of a file or something like that.

grep -o "whatever text" inputFile | cut -f1 -d"#"

The -d"#" means use the "#" as a delimiter, -f1 means the first field.

断舍离 2024-11-21 02:30:10

试试这个: /^.*(?=#)/ 它使用(非消耗性)前瞻

Try this: /^.*(?=#)/ It uses a (non-consuming) look-ahead

不醒的梦 2024-11-21 02:30:10

当您执行这样的脚本时,使用“标记”模式会很有帮助,因为标记的输出更容易解析和处理。请参阅 http://www 中的“-ztag” .perforce.com/perforce/r10.2/manuals/cmdref/o.gopts.html#1040647 并查看http://www.perforce.com/perforce/r10.2/manuals /p4script/index.html

It's helpful to use "tagged" mode when you are doing scripting like this, since tagged output is easier to parse and process. See "-ztag" in http://www.perforce.com/perforce/r10.2/manuals/cmdref/o.gopts.html#1040647 and also have a look at http://www.perforce.com/perforce/r10.2/manuals/p4script/index.html

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