
我正在嘗試將命令的輸出插入到文件的第一行。
例如,我有一個名為“list.txt”的文件,並且想要插入包含該資料夾中所有文件名稱的文字。將指令輸出定向ls
到 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
,然後 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