在UNIX shell中有什么好的技巧可以将行追加到文件的开头吗?例如。类似于
echo "Foobar" >> file.txt
...但新线路会先于现有线路吗?
答案 0 :(得分:10)
分2步:
content=$(cat file.txt) # no cat abuse this time
echo -en "foobar\n$content" >file.txt
答案 1 :(得分:6)
这是非标准的,但如果你的sed支持-i,你可以这样做:
sed -i '1i\
Foobar' file.txt
答案 2 :(得分:3)
我会保持简单。最简单也可能是最快的解决方案很简单:
(echo "Foobar"; cat file.txt) >tmpfile
cp tmpfile file.txt
rm tmpfile
如果file.txt的inode发生变化并不重要,请将“cp”替换为“mv”。一个明显快于此速度的解决方案是不可能的,因为Unix文件系统语义不支持预先添加到文件中,只是附加。