我曾询问过根据内容按字母顺序排序文件直到=
,并得到了答案:
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
但有没有办法在一个命令中完成?
答案 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
在内部处理临时文件舞蹈。