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

Dag*_*ang 10 bash awk grep sed

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 ...
Run Code Online (Sandbox Code Playgroud)

我有一个文件看起来像上面.我想从中提取文件名并输出到STDOUT:

server_log_1.log
server_log_2.log
server_log_3.log
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢!

文件名模式是server_log_xxx.log,它只在一行中出现一次.

gle*_*man 24

假设"xxx"占位符仅为数字:

grep -o 'server_log_[0-9]\+\.log'
Run Code Online (Sandbox Code Playgroud)


Paw*_*ski 7

通过以下命令管道文件:

sed 's/.*\(server_log_[0-9]\+\.log\).*/\1/'
Run Code Online (Sandbox Code Playgroud)