2014-09-04 34 views
-2

削減文件名我有如下一行:如何從文本

2014-Aug-26 03:45:31 Operation 1 
2014-Aug-26 03:45:32 NEW-1, operation successfully completed: /log/log_1/log_/log_3/log_4/log_5/file_name.xml 
2014-Aug-26 03:45:37 Operation 2 

這個文件的名字將永遠之後:NEW-1, operation successfully completed: /log/log_1/log_/log_3/log_4/log_5/

我想從這個日誌僅file_name.xml削減。有人可以幫忙嗎?

+1

不能回答,因爲我們沒有對足夠的信息日誌格式。文件名之前是否總是冒號?冒號後總是有* filename?或者是以「.xml」結尾的文件名?你需要一些你可以「錨定」你的文件名提取。 – DevSolar 2014-09-04 11:10:36

+2

類似'grep'的操作成功完成'file | grep -o'[^ /] \ + $'',但沒有更多信息,很難判斷標準是什麼。 – Biffen 2014-09-04 11:11:22

+0

@Biffen:我寧願通過'basename'提取文件名,而不是爲最後一個斜槓做grep。 – DevSolar 2014-09-04 11:12:18

回答

1

你可以試試下面的sed命令,

$ sed -n 's~.*NEW-1, operation successfully completed: /log/log_1/log_/log_3/log_4/log_5/\(.*\)~\1~p' file 
file_name.xml 
0

這也適用

$ grep "NEW-1" | awk -F"/" '{print$NF}' 

NF表示最後一個字段