2012-03-21 69 views

回答

-2

我無法想象還有什麼是在這個任何優於tail

2

你可以使用dd

dd if=input.sql of=output.sql skip=1217060 bs=1 

應該工作。假設ascii編碼,否則偏移量可能是錯誤的。

更新:對不起,我只是明白,你想擁有該文件的最後1217060字節。那麼你必須自己計算偏移量。 du input.sql應該給你文件的大小。該金額減去1217060應該給你想要使用的skip偏移量。

+0

我想要最後的1217060行,而不是字節,該文件 – user121196 2012-03-21 20:35:03

+0

對不起,那麼我建議嘗試Gangadhar指出的解決方案。 – devsnd 2012-03-22 08:52:05

1

在執行此操作之前無法將輸入文件拆分爲多個文件嗎?在某些情況下,即使拖尾也需要一段時間來處理文件。這link可能是你可以嘗試的東西。

0

真的需要更多的背景知道爲什麼你這樣做......但是可能你可以通過拖拽和追加文件的最後幾行來改善它,就像它是一個日誌並將新的東西附加到輸出文件。

tail -f source.sql >> target.sql

你能給出更多的細節嗎?你是否在使用cron與這個命令一起使用?你爲什麼要閱讀然後轉儲這麼多的數據?大多數數據庫都有一個轉儲命令...

0

我剛剛遇到了同樣的問題,當我想將大文件(6,666,206行)拆分爲大小基本相同的10個塊時(不包括第一行)。前9個文件,我用這樣的結構:

head -n 670001 rather_big_file.csv | tail -n 670000 > chunk_1.csv 
head -n 1340001 rather_big_file.csv | tail -n 670000 > chunk_2.csv 
(...) 
head -n 6030001 rather_big_file.csv | tail -n 670000 > chunk_9.csv 

他們每個人都花了幾秒鐘時間來處理。但對於10日的文件,我想

tail -n 636205 > chunk_10.csv 

它沒有回來;就像原始問題中所描述的一樣。

但是,然後,我嘗試了與前九個文件,即我相同的構造。 e:

head -n 6666206 rather_big_file.csv | tail -n 636205 > chunk_10.csv 

並在幾秒鐘後返回所需的文件。 我不知道爲什麼這個工作,但它解決了問題!