sed/awk:从文本流中提取模式

发布于 2024-11-28 02:53:36 字数 445 浏览 0 评论 0原文

2011-07-01 ... /home/todd/logs/server_log_1.log ...
2011-07-02 ... /home/todd/logs/server_log_2.log ...
2011-07-03 ... /home/todd/logs/server_log_3.log ...

我有一个类似于上面的文件。我想从中提取文件名并输出到 STDOUT:

server_log_1.log
server_log_2.log
server_log_3.log

有人可以帮忙吗?谢谢!

文件名模式为 server_log_xxx.log,并且在一行中仅出现一次。

2011-07-01 ... /home/todd/logs/server_log_1.log ...
2011-07-02 ... /home/todd/logs/server_log_2.log ...
2011-07-03 ... /home/todd/logs/server_log_3.log ...

I have a file looks like the above. I want to extract the file names from it and output to STDOUT as:

server_log_1.log
server_log_2.log
server_log_3.log

Could someone help? Thanks!

The file name pattern is server_log_xxx.log, and it only occurs once in a line.

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

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

发布评论

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

评论(4

阪姬 2024-12-05 02:53:36

假设“xxx”占位符只是数字:

grep -o 'server_log_[0-9]\+\.log'

Assuming the "xxx" placeholder is only digits:

grep -o 'server_log_[0-9]\+\.log'
等待圉鍢 2024-12-05 02:53:36

通过以下命令管道您的文件:

sed 's/.*\(server_log_[0-9]\+\.log\).*/\1/'

Pipe your file through following command:

sed 's/.*\(server_log_[0-9]\+\.log\).*/\1/'
清泪尽 2024-12-05 02:53:36

使用 awk 和您的输入模式:

awk 'BEGIN {FS="/"}
     { print gensub(" .*$","","g",$5) }' INPUTFILE

在此处查看其操作:https://ideone.com/kcadh

HTH

With awk and your input pattern:

awk 'BEGIN {FS="/"}
     { print gensub(" .*$","","g",$5) }' INPUTFILE

See it action here: https://ideone.com/kcadh

HTH

绝影如岚 2024-12-05 02:53:36
sed 's|.*/\([^/ ]*\).*|\1|' infile
sed 's|.*/\([^/ ]*\).*|\1|' infile
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文