這是我想要做的...保留文件的頂部5行
我有一堆文本文件,我需要通過並只保留前5行。如果我做top
然後輸出到一個文件,那裏的一部分。我需要的文件名稱與以前相同。
例如:file.name
- 取頂部5行(刪除第5行下面的所有內容),然後將文件另存爲file.name
。有許多文件需要在批處理中完成。
這是我想要做的...保留文件的頂部5行
我有一堆文本文件,我需要通過並只保留前5行。如果我做top
然後輸出到一個文件,那裏的一部分。我需要的文件名稱與以前相同。
例如:file.name
- 取頂部5行(刪除第5行下面的所有內容),然後將文件另存爲file.name
。有許多文件需要在批處理中完成。
您可以使用head
來做到這一點。
head -n 5 file.name > file.name.tmp && mv file.name.tmp file.name
您可以構建這是一個腳本來做到這一點對所有的文件,通過file.name
在以後每次運行參數。
+1。另外,而不是'頭......; mv ...',你最好使用'head ... && mv ...',這樣如果第一個成功完成,mv就會被執行。 – fedorqui
很酷謝謝你。我如何設置它來運行一個文件目錄? – user3324211
@fedorqui更改:) –
的基本語法,假設你與一個名爲「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對@畝的代碼
編輯推薦碼:固定碼,加入「做」,做代碼的可讀性
UMM你嘗試過這麼遠嗎? –