2014-02-18 36 views
-1

這是我想要做的...保留文件的頂部5行

我有一堆文本文件,我需要通過並只保留前5行。如果我做top然後輸出到一個文件,那裏的一部分。我需要的文件名稱與以前相同。

例如:file.name - 取頂部5行(刪除第5行下面的所有內容),然後將文件另存爲file.name。有許多文件需要在批處理中完成。

+1

UMM你嘗試過這麼遠嗎? –

回答

3

您可以使用head來做到這一點。

head -n 5 file.name > file.name.tmp && mv file.name.tmp file.name 

您可以構建這是一個腳本來做到這一點對所有的文件,通過file.name在以後每次運行參數。

+1

+1。另外,而不是'頭......; mv ...',你最好使用'head ... && mv ...',這樣如果第一個成功完成,mv就會被執行。 – fedorqui

+0

很酷謝謝你。我如何設置它來運行一個文件目錄? – user3324211

+1

@fedorqui更改:) –

2

的基本語法,假設你與一個名爲「file.name」文件的工作,是很簡單的

head -n5 file.name > temp && cat temp > file.name 

cat file.name | head -n5 > temp && cat temp > file.name 

如果你正在嘗試做這在很多您應該使用類似於

find ./ -type f -printf "%f\n" 

您可以根據何種類型修改參數文件的PE想要

find ./ -name "*.js" -type f -printf "%f\n" 

可以再通過該列表循環,通過每一行作爲參數傳遞到上面的代碼

它可能會是這個樣子(我沒有測試過這一點,但它類似於我寫的另一個小腳本,所以希望它指向正確的方向)

function cutfile { 
    head -n5 "$1" > temp && cat temp > "$1" 
} 

find ./ -name "*.js" -type f -printf "%f\n" |\ 
while read line; do cutfile $line; done 

編輯:改變了頭...;貓...基於@ fedorqui對@畝的代碼

編輯推薦碼:固定碼,加入「做」,做代碼的可讀性