
コマンドの出力をファイルの最初の行に挿入しようとしています。
ls
たとえば、「list.txt」という名前のファイルがあり、そのフォルダー内のすべてのファイル名を含むテキストを挿入したいとします。コマンドの出力を list.txt の最初の行に送る方法。
答え1
ほとんどの人は sed を検索および正規表現ベースの検索と置換のツールとして知っていますが、これは編集が可能な完全なエディターです。
次のようなコマンドを発行することができます。これは1 i
lsコマンドの最初の行をファイル$(ls| head -1)
に挿入します。list.txt
所定の位置に(-i
)。
sed -i "1 i$(ls| head -1)" list.txt
答え2
ファイルの最初の行にリダイレクトするネイティブな方法はありませんが、一時ファイルを使用してこれを実現することはできます。たとえば、最初に出力を に追加しlist2.txt
、次にlist.txt
それに cat して、出力全体を に書き戻しますlist.txt
。
ls > list2.txt
cat list.txt >> list2.txt
mv list2.txt list.txt
そうすれば、あなたが探しているものが見つかるはずです。
答え3
おそらく、これを実行するよりエレガントな方法がありますが、複数のファイルを使用することもできます。例:
ls | head -n 1 > temp-list.txt
cat list.txt >> temp-list.txt
mv temp-list.txt list.txt