如何输出给定目录的每个子目录名称的前 N ​​个字母?

如何输出给定目录的每个子目录名称的前 N ​​个字母?

需要输出给定目录的每个子目录名称的前 N ​​个字母。我想使用 ls 命令,但不知道在哪里以及如何写文件的名称

答案1

-printf该命令的操作接受findC 样式的%.N字段宽度规范

find path/to/directory/ -type d -printf '%.5f\n'

(替换5为您想要的字母数)。添加-maxdepth 1以将其限制在直接子目录中。


如果你想要所有文件,那就更简单了。你可以像find上面一样使用,但删除-type d,或者使用stat简单的*shell glob:

find . -printf "%.5f\n"

stat -c '%.5n' *

如果要使用 shell 变量来设置宽度,则需要更改引号,即

N=5
find . -printf "%.${N}f\n"

或者

N=5
stat -c "%.${N}n" *

如果你有“简单”的文件名,并且只想在终端中使用一些快速而简单的功能,你甚至可以使用

ls | cut -c1-$N

相关内容