![](/img/trans.png)
[英]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.