获取用于 awk 打印的 int 格式

get format on int for awk print

我想要 python 文件的相对路径行数。

我是这样理解的::

$ find ./ -name "*.py" -exec wc -l {} \;| awk '{print , }'
29 ./setup.py
28 ./proj_one/setup.py
896 ./proj_one/proj_one/data_ns.py
169 ./proj_one/proj_one/lib.py
310 ./proj_one/proj_one/base.py
0 ./proj_one/proj_one/__init__.py
72 ./proj_one/tests/lib_test.py

我怎样才能得到这样的(格式化整数)::

 29 ./setup.py
 28 ./proj_one/setup.py
896 ./proj_one/proj_one/data_ns.py
169 ./proj_one/proj_one/lib.py
310 ./proj_one/proj_one/base.py
  0 ./proj_one/proj_one/__init__.py
 72 ./proj_one/tests/lib_test.py

您可以使用printf with a width format modifier来制作格式化列:

$ find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", , }'

在大多数平台上,您可以使用逗号分隔符作为说明符打印(如果您有大文件)但是 quoting 对于命令行使用来说可能具有挑战性:

$ echo 10000000 | awk '{printf "%'\''d\n", }'
10,000,000

将 find 的输出 pip 到 column -t 怎么样?

column 实用程序将其输入格式化为多列

-t 确定输入包含的列数并创建一个 table。阅读 man page

za$ find . -name "*rb" -exec wc -l {} \; | column -t 
20   ./dirIO.rb
314  ./file_info.rb
53   ./file_santizer.rb
154  ./file_writer.rb
58   ./temp/maps.rb
248  ./usefu_ruby.rb