我有以下行SED從文件
日誌文件中刪除文本「TSAGE_20160304193254_AAA_29792A_1103.tgz:二進制文件(標準輸入)匹配」
我需要刪除第一行高達29792A和之後的文本,文件看起來就像這樣:
29745gv92A
297342A
2934792A
29755692A
29778892A
我有以下行SED從文件
日誌文件中刪除文本「TSAGE_20160304193254_AAA_29792A_1103.tgz:二進制文件(標準輸入)匹配」
我需要刪除第一行高達29792A和之後的文本,文件看起來就像這樣:
29745gv92A
297342A
2934792A
29755692A
29778892A
您可以使用切讓像_
分隔符之間的東西。
當你想將其重定向到另一個文件,使用
cut -d"_" -f4 logfile > otherfile
你可以做這樣的事情與sed
,但你需要告訴sed的,它會跳過模式[^_]*_
(字符除了重複下劃線0或更多次),然後是下劃線)。你要跳過這個(模式){3}從^
開始行的時間。
你匹配([^_]*)
第二個字符串是你想要的部分。 .*
是該行的其餘部分,並且是垃圾。
sed的第一部分將有2串記起來了,所以記得\2
獲得第二。你會加上反斜槓
有
sed 's/^\([^_]*_\)\{3\}\([^_]*\).*/\2/' logfile
我沒有測試sed
命令時,cut
更好。
謝謝你得到了與剪切命令工作 – Rich
Perhap這可能工作:
awk -F_ '{print $4}' file
29792A
你嘗試像'切-d 「 - 」 -f4'? –
我不知道如何使用切割。我使用它與sed? – Rich
請澄清的問題,並提供輸入,預期的輸出,並且您已經嘗試了代碼的簡約例子。 – peak