[英]use SED to extract header and data from “x=a1, y=b1, z=c1” type of files
[英]give sudo permission to log files on different paths like /a/b1/c.log and /a/b2/d.log etc. files
我需要一个不错的Centrify工具列,例如,它包括不同文件夹下的所有日志文件。
/oradata1/oracle/admin/A/scripts/rman_logs/*.log
/oracle/oracle/admin/B/scripts/rman_logs/*.log
/oradata2/admin/C/scripts/logs/*.log
我使用了它,但是*字符用户可以看到所有日志; / ora(数据(1 | 2)| cle)/ oracle | admin / admin / * / scripts / rman_logs
/ora(data(1|2)|cle)/oracle|admin/admin/*/scripts/rman_logs
我必须使用哪个表达式。
如果我正确理解我们的问题,则只需要.log
文件。 您可以使用肯定的前瞻性断言它确实是一个log
文件(在文件名末尾包含.log
),并且可以将文件名匹配为(.*)
。
那真的很容易。 (?=.*\\.log(?:$|\\s)).*
当然,如果您想限制匹配项,也可以添加特定的文件夹,但是积极的前瞻仍将继续进行。 即(?=.*\\.log(?:$|\\s)).*/scripts/.*
编辑:作为您的注释,您只需要这些文件夹,因此您只需交替指定它们的文件路径,然后在末尾添加[^.\\s\\/]*\\.log
。 所以:
(?:\\/oradata1\\/oracle\\/admin\\/A\\/scripts\\/rman_logs\\/|\\/oracle\\/oracle\\/admin\\/B\\/scripts\\/rman_logs\\/|\\/oradata2\\/admin\\/C\\/scripts\\/logs\\/)[^\\s.\\/]*\\.log
您可以通过尝试组合文件路径元素来缩短regex,但是imo并不是必需的,因为您最好指定每个如果文件路径没有太多重叠,则分别使用。
我发现了一种全球表达方式。
这不是一个好方法,但是它可以有效地使我免于大量工作。 所有服务器的主文件都在...... / scripts / rman_logs /下,因此我使用这种方式。
我可以生成这些行,并且可以作为用户的命令组,所以效果很好
尾巴/ / / / /scripts/rman_logs/*.log
尾巴/ / / / scripts / rman_logs / .log
感谢您的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.