> tmp; sort tmp > file; rm -f -6ren">
gpt4 book ai didi

Shell 单行代码向已排序的文件添加一行

转载 作者:行者123 更新时间:2023-12-02 07:03:58 26 4
gpt4 key购买 nike

我想在文本文件中添加一行,以便对结果进行排序,即文本文件最初排序的位置。例如:

cp file tmp; echo "new line" >> tmp; sort tmp > file; rm -f tmp

我真的很想在没有临时文件和分号的情况下做到这一点(使用管道代替?);使用 sed 是可以接受的。这可能吗?如果可能的话,如何实现?

最佳答案

echo "New Line" | sort -o file - file

-o file 表示将结果写入文件(并且将任何输入文件作为输出文件是明确安全的)。 - 本身意味着“读取标准输入”,其中包含新的信息行。末尾的file表示“也读取file”。这适用于(至少)大约 1978 年第 7 版 UNIX™ 以后的任何 Unix 类型,甚至可能更早。没有临时文件或对其他实用程序的依赖。

鉴于单行已“排序”并且文件也按排序顺序,您可以通过合并两个排序的输入来加快该过程:

echo "New Line" | sort -o file -m - file

即使是非常古老的排序命令,这也适用。

关于Shell 单行代码向已排序的文件添加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com