Bash,使用tail后排序

Bash,使用tail后排序,bash,Bash,我对3个文件执行跟踪,然后创建一个新文件,当我对这个新文件进行排序时,它说它无法访问。所以在代码中,$a、$b和$c是文本文件。那么,我怎样才能让它对新文件进行排序呢 tail -q -n -5 $a $b $c > file.txt sort file.txt -o file.txt 尝试: 什么版本的排序?对于GNU coreutils 7.4,它适合我 如果你在做什么 sort file.txt > file.txt 它不起作用,因为重定向会在sort读取文件之前截断文件。

我对3个文件执行跟踪,然后创建一个新文件,当我对这个新文件进行排序时,它说它无法访问。所以在代码中,$a、$b和$c是文本文件。那么,我怎样才能让它对新文件进行排序呢

tail -q -n -5 $a $b $c > file.txt
sort file.txt -o file.txt
尝试:


什么版本的
排序
?对于GNU coreutils 7.4,它适合我

如果你在做什么

sort file.txt > file.txt

它不起作用,因为重定向会在
sort
读取文件之前截断文件。但是,当我执行
扫描时,它显示
排序-o
直到最后才写入输出文件。

@user616731:原始文件不起作用的原因是
排序
无法同时读取和写入
文件.txt
。虽然您也可以使用不同的临时文件,例如,
sort file.txt-o result.txt
,但此答案是首选方法。
sort file.txt > file.txt