好吧,所以我有一個腳本生成一個值列表(爲了簡單起見用換行符分隔),但是它們是按照一個順序生成並存儲到文件中的,但是我需要以相反的順序處理文件(由於數據集可能變得非常大,我無法改變第一步如何操作)。用於逐行讀取文件的最兼容的方法
我對bash中的有用命令tac
和tail -r
非常熟悉,但不幸的是我在其中工作的環境都沒有(除了主要的POSIX標準之外,我不相信它有很多)。
所以我在尋找的是從逆向順序讀取文件行的最好方法,最好儘可能少的內存開銷,因爲文件可能會變得非常大(儘管個別行應該是相對較小)。
你的兩個目標似乎有衝突:每次文件被追加時,它都會添加一條你應該已經使用的記錄。另外,你的環境是什麼? – chepner
可能的重複:[unix:如何從文件向後打印行(不使用「tac」)?](http://unix.stackexchange.com/questions/9356/how-can-i-print-lines-from -file-backwards-without-use-tac) – ahilsend
@chepner是我第一次讀取我正在從流中讀取的數據並處理這些值,以僅過濾掉我需要的數據,並將其寫入文件。然而,爲了保持內存使用健壯的大數據集,我必須按照我處理它們的順序編寫這些值。但是一旦完成,我需要以相反的順序對它們執行操作,因此需要逐行讀取文件。目前,我只是將大塊內容讀取到內存中進行反向處理,但它並不漂亮。 – Haravikk