开发者

sed/awk: Extract pattern from text stream

2开发者_如何学C011-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.


Assuming the "xxx" placeholder is only digits:

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


Pipe your file through following command:

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


With awk and your input pattern:

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

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

HTH


sed 's|.*/\([^/ ]*\).*|\1|' infile
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜