我有一个用mktemp制作的临时文件。在脚本退出之前,我必须将文件的内容输出到屏幕。内容必须按字典顺序排序。当我尝试将排序应用于临时文件时,它会多次输出排序结果。 即我的临时文件看起来像没有排序
OUT="$(mktemp)"
#Add lines to $OUT
cat "$OUT"
此输出
../a1q2/hello1.cc
../a1q2/hello2.cpp
../a1q2/hello3.h
../a1q2/hello4.C
../a1q2/z/hi.cc
../a1q2/dir/two.cpp
../a1q2/dir/one.cc
../a1q2/dir/three.h
../a1q2/dir/four.C
../extra/dir/hi.cpp
../extra/dir/hi2.C
../extra/hi.cc
../extra/h2.cc
../extra/h3.h
我想按字典顺序排序,但是当我这样做时
OUT="$(mktemp)"
#Add some lines to $OUT ...
sort "$OUT"
cat "$OUT"
我得到以下输出
../a1q2/dir/four.C
../a1q2/dir/one.cc
../a1q2/dir/three.h
../a1q2/dir/two.cpp
../a1q2/hello1.cc
../a1q2/hello2.cpp
../a1q2/hello3.h
../a1q2/hello4.C
../a1q2/z/hi.cc
../extra/dir/hi.cpp
../extra/dir/hi2.C
../extra/h2.cc
../extra/h3.h
../extra/hi.cc
../a1q2/hello1.cc
../a1q2/hello2.cpp
../a1q2/hello3.h
../a1q2/hello4.C
../a1q2/z/hi.cc
../a1q2/dir/two.cpp
../a1q2/dir/one.cc
../a1q2/dir/three.h
../a1q2/dir/four.C
../extra/dir/hi.cpp
../extra/dir/hi2.C
../extra/hi.cc
../extra/h2.cc
../extra/h3.h
我不知道为什么会这样。任何帮助都将不胜感激
答案 0 :(得分:1)
sort
输出到STDOUT,它不会覆盖您排序的文件。
您可能打算做以下事情:
sort "$OUT" > sorted.txt
cat sorted.txt
答案 1 :(得分:0)
您可以将两个步骤与tee
结合使用,已排序的输出将写入文件和STDOUT。
$ sort file | tee sorted_file