2

以下内容将截断文件以获取第一行并覆盖它,我想知道是否有更简洁的方法来执行此操作:

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

请注意,这不起作用:

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

并且touch在大多数系统上都不需要

4

4 回答 4

4

这是就地进行的一种方法

ex -c ':2,$d' -c ':wq' versions.txt
于 2013-10-16T20:41:03.343 回答
3

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

sed -i -n 1p versions.txt
于 2013-10-16T20:27:41.100 回答
3

像这样使用 sed:

sed -i.bak '1d' file
于 2013-10-16T20:28:48.130 回答
3

何关于这个

ONE=`awk 'NR==1 {print;exit}' versions.txt`&& echo $ONE>versions.txt 
于 2013-10-16T20:36:19.850 回答