2016-03-05 25 views
1

我有以下行SED從文件

日誌文件中刪除文本「TSAGE_20160304193254_AAA_29792A_1103.tgz:二進制文件(標準輸入)匹配

我需要刪除第一行高達29792A和之後的文本,文件看起來就像這樣:

29745gv92A 
297342A 
2934792A 
29755692A 
29778892A 
+0

你嘗試像'切-d 「 - 」 -f4'? –

+0

我不知道如何使用切割。我使用它與sed? – Rich

+0

請澄清的問題,並提供輸入,預期的輸出,並且您已經嘗試了代碼的簡約例子。 – peak

回答

0

您可以使用切讓像_分隔符之間的東西。
當你想將其重定向到另一個文件,使用

cut -d"_" -f4 logfile > otherfile 

你可以做這樣的事情與sed,但你需要告訴sed的,它會跳過模式[^_]*_(字符除了重複下劃線0或更多次),然後是下劃線)。你要跳過這個(模式){3}從^開始行的時間。
你匹配([^_]*)第二個字符串是你想要的部分。 .*是該行的其餘部分,並且是垃圾。
sed的第一部分將有2串記起來了,所以記得\2獲得第二。你會加上反斜槓

sed 's/^\([^_]*_\)\{3\}\([^_]*\).*/\2/' logfile 

我沒有測試sed命令時,cut更好。

+0

謝謝你得到了與剪切命令工作 – Rich

0

Perhap這可能工作:

awk -F_ '{print $4}' file 
29792A