我正在尝试将命令的输出插入到文件的第一行。
例如,我有一个名为“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