2017-06-28 34 views
1

我是新的蜜蜂到Linux環境。我使用BELL字符^G作爲分隔符,具有以下格式中列出的金色大門生成文件。文件處理排序和刪除重複

I^G2017-06-27 21:57:57.000000^G2^[email protected] 
I^G2017-06-27 22:00:04.000000^G2^[email protected] 
I^G2017-06-27 22:00:59.000000^G2^[email protected] 
K^G2017-06-27 23:00:09.000000^G2^[email protected] 

前兩列用於內部表示以幫助排序,第三列是唯一鍵。這是基於第二列(時間戳)和第三列......我想對記錄進行排序並將最新的獨特記錄寫入其他文件,如下所示。

2^[email protected] 

您能否幫我解決這個問題。由於

+0

你應該顯示你的代碼和狀態你有問題。否則,您將冒着社區的憤怒,試圖將該網站用作代碼編寫服務。 – jww

回答

0

使用sortcuttail來實現:

sort -u -k2,2 -t^G input.txt | cut -d^G -f3,4 | tail -n1 > /tmp/output.txt 

首先,我們告訴排序選擇唯一行(-u),排序第二列(-k2,2),使用響鈴字符作爲分隔符(-t^G,鍵入ctrl+Vctrl+G鍵入該字符),併爲其輸入文件。然後我們使用相同的分隔符(-d^G)將輸出輸出到cut,並僅保留第3和第4列(-f3,4)。然後,我們將它輸出到tail -n1只輸出最後一行,並最終將其重定向到您的輸出文件。

請注意,如果您打印^Gstdout,它將不會顯示任何內容,而是使您的計算機發出嗶聲。