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

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

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

例如,我有一个名为“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

相关内容