linux截断第一行-有更好的方法吗

linux截断第一行-有更好的方法吗,linux,bash,Linux,Bash,下面的代码将截断文件以获取第一行并覆盖它, 我想知道是否有更干净的方法: touch temp.txt; cat versions.txt | head -1 > temp.txt; mv temp.txt versions.txt 请注意,这不起作用: cat versions.txt | head -1 > versions.txt 而且在大多数系统上不需要触摸,,您可以使用sed在一个命令中完成: sed -i -n 1p versions.txt 像这样使用sed: s

下面的代码将截断文件以获取第一行并覆盖它, 我想知道是否有更干净的方法:

touch temp.txt; cat versions.txt | head -1 > temp.txt; mv temp.txt versions.txt
请注意,这不起作用:

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

而且在大多数系统上不需要触摸

您可以使用sed在一个命令中完成:

sed -i -n 1p versions.txt
像这样使用sed:

sed -i.bak '1d' file
怎么了

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

这里有一种在适当的地方做的方法

ex -c ':2,$d' -c ':wq' versions.txt

当您可以直接编写
head-1 versions.txt>temp.txt
时,为什么要使用cat文件?如果文件较大,则使用
sed 1q文件显然是最好的解决方案