將命令輸出到檔案的第一行

將命令輸出到檔案的第一行

我正在嘗試將命令的輸出插入到文件的第一行。

例如,我有一個名為“list.txt”的文件,並且想要插入包含該資料夾中所有文件名稱的文字。將指令輸出定向ls到 list.txt 第一行的方法。

答案1

大多數人都知道 sed 是一種用於搜尋以及基於正規表示式的搜尋和替換的工具,但它是一個能夠進行編輯的完整編輯器。

所以你可以發出這樣的命令。這會將1 ils 指令的第一行插入 ( )檔$(ls| head -1)list.txt到位( -i)。

sed -i "1 i$(ls| head -1)" list.txt

答案2

沒有本機方法可以重定向到檔案的第一行,但無論如何您都可以使用臨時檔案來實現此目的。例如,首先將輸出附加到list2.txt,然後 catlist.txt到其中並將整個輸出寫回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

相關內容