ファイルの先頭に行を追加するためのUNIXシェルの優れたトリックはありますか?例:
echo "Foobar" >> file.txt
...しかし、代わりに新しい行が既存の行の前に追加されますか?
2 つのステップで:
content=$(cat file.txt) # no cat abuse this time
echo -en "foobar\n$content" >file.txt
これは非標準ですが、sed が -i をサポートしている場合は、次のことができます。
sed -i '1i\
Foobar' file.txt
私はそれをシンプルに保ちます。最も簡単でおそらく最速の解決策は簡単です。
(echo "Foobar"; cat file.txt) >tmpfile
cp tmpfile file.txt
rm tmpfile
file.txt の inode が変更されても問題ない場合は、「cp」を「mv」に置き換えます。Unix ファイルシステムのセマンティクスはファイルの先頭への追加をサポートしておらず、追加のみをサポートしているため、これよりも大幅に高速なソリューションは不可能です。