0
我對3個文件執行一個尾部,然後創建一個新文件,當我去排序這個新文件時,它說它無法訪問。所以在代碼$ a中,$ b和$ c是文本文件。那麼我怎麼能得到這個排序新文件?Bash,使用尾部排序
tail -q -n -5 $a $b $c > file.txt
sort file.txt -o file.txt
我對3個文件執行一個尾部,然後創建一個新文件,當我去排序這個新文件時,它說它無法訪問。所以在代碼$ a中,$ b和$ c是文本文件。那麼我怎麼能得到這個排序新文件?Bash,使用尾部排序
tail -q -n -5 $a $b $c > file.txt
sort file.txt -o file.txt
嘗試:
tail -q -n -5 $a $b $c | sort > file.txt
什麼的sort
版本?對於GNU coreutils 7.4,它適用於我。
如果你正在做
sort file.txt > file.txt
它不會工作,因爲重定向將截斷從中讀取sort
之前的文件。但是,當我執行strace
時,它顯示sort -o
直到結束才寫入輸出文件。
@ user616731:原始文件不起作用的原因是`sort`不能同時讀取和寫入`file.txt`。儘管你也可以使用不同的臨時文件,例如這個答案是實現它的首選方法。 `sort file.txt -o result.txt`。 – 2011-02-14 20:16:21