2013-10-16 33 views
2

有這將截斷文件採取的第一行和覆蓋它, 我不知道是否有一個更清潔的方式,然後做到這一點的情況如下:LINUX截斷第一線 - 有沒有更好的方法

touch temp.txt; cat versions.txt | head -1 > temp.txt; mv temp.txt versions.txt 

請注意,這並不工作:

cat versions.txt | head -1 > versions.txt 

touch沒有必要在大多數系統

+0

這樣做的一個辦法你爲什麼貓文件,當你可以直接寫'head -1 versions.txt> temp.txt'? –

+0

[我如何使用bash/sed腳本刪除文本文件的第一行?](http://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-使用bash-sed-script) –

回答

3

你能做到這一點,在一架C的sed ommand:

sed -i -n 1p versions.txt 
+3

如果文件很大,做'sed 1q文件'效率更高 –

+0

絕對是最好的解決方案 –

3

用sed這樣的:

sed -i.bak '1d' file 
3

何這個

ONE=`awk 'NR==1 {print;exit}' versions.txt`&& echo $ONE>versions.txt 
4

這裏的就地

ex -c ':2,$d' -c ':wq' versions.txt 
相關問題