告诉`ls`按常规ASCII码排序,而不是“智能”
我有几个文件,我会像这样对它们进行排序:
a _b c
但我想拥有
_b a c
我怎样才能做到这一点?
作为一次性命令,您可以这样做:
LC_COLLATE=C ls
或者您可以将export LC_COLLATE="C"
添加到.bashrc中以使其成为永久性(可能在其他地方排序有意外结果)。
有关Ubuntu论坛的更多信息。
如果没有内置的方法来执行此操作,您可以使用简单的替换sort
:
#!/usr/bin/env python import sys for i in sorted(sys.stdin): sys.stdout.write(i)
例如,将其保存在/bin/pysort
并使其可执行( sudo cp whatever.py /bin/pysort
和sudo chmod a+x /bin/pysort
),并将其作为ls | pysort
运行ls | pysort
ls | pysort
:
stefano@lenovo:~/t$ ls | pysort _b a c
会ls | sort
ls | sort
不完全符合你的需要吗?