将命令输出到文件的第一行

我正在尝试将input的命令插入文件的第一行。

例如,我有一个名为“list.txt”的文件,并希望在文件夹中插入一个包含所有文件名的文本。 将ls命令的输出引导到list.txt的第一行的一种方法。

大多数人都知道sed是search和正则expression式search和补充的工具,但它是一个完整的编辑器,可以进行编辑。

所以你可以像这样发出一个命令。 这会将( 1 i )ls命令$(ls| head -1) )的第一行插入到list.txt-i )的list.txt文件中。

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

没有本地方式redirect到文件的第一行,但是您可以使用临时文件来实现这一点。 例如,首先将输出附加到list2.txt ,然后将cat list.txt到它中,然后将整个输出写回到list.txt

 ls > list2.txt cat list.txt >> list2.txt mv list2.txt list.txt 

这样,你应该结束了你在找什么。

有可能是一个更优雅的方式来做到这一点,但你可以只使用多个文件。 例如:

 ls | head -n 1 > temp-list.txt cat list.txt >> temp-list.txt mv temp-list.txt list.txt