我有几个文件并ls像这样对它们进行排序:
a
_b
c
Run Code Online (Sandbox Code Playgroud)
但我想拥有
_b
a
c
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
作为一次性命令,您可以执行以下操作:
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)
Run Code Online (Sandbox Code Playgroud)
例如,将其保存在 at/bin/pysort并使其可执行(sudo cp whatever.py /bin/pysort和sudo chmod a+x /bin/pysort),然后将其运行为ls | pysort:
stefano@lenovo:~/t$ ls | pysort
_b
a
c
Run Code Online (Sandbox Code Playgroud)