根据内容按字母顺序对文件进行排序,直到第一个“=”

时间:2017-02-06 15:53:07

标签: bash sorting

我曾询问过根据内容按字母顺序排序文件直到=,并得到了答案: Sort by bash a text file by the first string (till '=')

现在我还有另一个问题: 有没有办法“到位”?

我的意思是确实sort -t= sort.list完成了工作,并在屏幕上显示已排序的内容;但是sort -t= sort.list > sort.list 导致空sort.list个文件。我当然可以这样做:

sort -t= sort.list > sort1.list

然后

mv sort1.list sort.list

但有没有办法在一个命令中完成?

2 个答案:

答案 0 :(得分:3)

您可以像这样指定输出文件名:

sort -t= sort.list -o sort.list

并且它不会覆盖您的文件。如果您的sort没有此选项,则必须使用类似

的内容
sort -t= sort.list > sort.tmp && mv sort.tmp sort.list

...但如果它是POSIX conformant,它应该有选项。

答案 1 :(得分:0)

使用-o选项,而不是写入标准输出。

sort -t= sort.list -o sort.list

它不是真正就地,但是sort在内部处理临时文件舞蹈。