8

ファイルの先頭に行を追加するためのUNIXシェルの優れたトリックはありますか?例:

   echo "Foobar" >> file.txt

...しかし、代わりに新しい行が既存の行の前に追加されますか?

4

3 に答える 3

10

2 つのステップで:

content=$(cat file.txt) # no cat abuse this time
echo -en "foobar\n$content" >file.txt
于 2012-05-23T14:08:57.047 に答える
6

これは非標準ですが、sed が -i をサポートしている場合は、次のことができます。

sed -i '1i\
Foobar' file.txt
于 2012-05-23T14:17:02.973 に答える
3

私はそれをシンプルに保ちます。最も簡単でおそらく最速の解決策は簡単です。

(echo "Foobar"; cat file.txt) >tmpfile
cp tmpfile file.txt
rm tmpfile

file.txt の inode が変更されても問題ない場合は、「cp」を「mv」に置き換えます。Unix ファイルシステムのセマンティクスはファイルの先頭への追加をサポートしておらず、追加のみをサポートしているため、これよりも大幅に高速なソリューションは不可能です。

于 2012-05-23T14:40:23.073 に答える