grep和/或sed匹配具有不同模式的字符串的路径

grep和/或sed匹配具有不同模式的字符串的路径,sed,grep,match,keyword,Sed,Grep,Match,Keyword,我有一个很大的文件,它由许多不同的行组成,其中只有一个commo关键字storaged PROC:storage123:0702:2108:0,1,2,3,4,5:storage:vers:storaged:storage123:Storage 123:storage123:-R /etc/orc/storage123 -e emr123@localhost -p Xxx:: PROC:storageabc:0606:2108:0,1,2,3,4,5:storage:vers:storaged:

我有一个很大的文件,它由许多不同的行组成,其中只有一个commo关键字storaged

PROC:storage123:0702:2108:0,1,2,3,4,5:storage:vers:storaged:storage123:Storage
123:storage123:-R /etc/orc/storage123 -e emr123@localhost -p Xxx::
PROC:storageabc:0606:2108:0,1,2,3,4,5:storage:vers:storaged:storageabc:Storage
abc:storageabc: -e emabc@localhost -R /etc/orc/storageabc -p 654::
我需要做的是grep查找在-R之后出现的所有存储关键字上可以找到的路径。但是我只想要路径,后面什么都不要-R可以在不同的地方找到,所以它没有模式

我创造了一个似乎有效的ESPENSONE,但我认为我做的太复杂了(而且不是100%确定匹配),比它应该做的要多

[root:~/scripts/] <conf.txt grep -o 'R  *[^ ]*' | grep -o '[^ ]*$' | sed 's/.*R\///'
/etc/orc/storage123
/etc/orc/storagerabc

[root:~/scripts/]您的尝试很好,但您可以通过使用后面的查找来简化它:

$ grep -Po '(?<=-R )[^ ]*' file
/etc/orc/storage123
/etc/orc/storageabc

$grep-Po'(?您的尝试很好,但您可以通过使用“后视”来简化它:

$ grep -Po '(?<=-R )[^ ]*' file
/etc/orc/storage123
/etc/orc/storageabc

$grep-Po'(?应该是:
sed-n's/*-R\([^]*\)./\1/p'文件
应该是:
sed-n's/*-R\([^]*\).*/\1/p'文件
Perfect!这正是我需要的。干杯!很好,你解释了这个命令。它真的帮助了我调整它。完美!这正是我需要的。干杯!很好,你解释了这个命令。它真的帮助了我调整它。