如何使用awk或bash打印文件夹中的所有文件名?

时间:2012-09-17 15:37:51

标签: bash awk

我想在文件夹中打印所有文件名。如何使用awk或bash执行此操作?

6 个答案:

答案 0 :(得分:4)

ls -l /usr/bin | awk '{ print $NF }' 

:)

答案 1 :(得分:2)

find . -type f -maxdepth 1

如果你想以递归方式为子目录执行,则排除-maxdepth部分

答案 2 :(得分:1)

此命令将打印所有文件名:

for f in *; do echo "$f"; done

或(甚至更短)

printf '%s\n' *

或者,如果您想要打印特定的文件类型(例如.txt),可以试试这个:

for f in *.txt; do echo "$f"; done

或(甚至更短)

printf '%s\n' *.txt

答案 3 :(得分:1)

以下是纯AWK选项:

gawk '
    BEGINFILE {
        print "Processing " FILENAME
    };
' *

如果您想将其用作处理多个文件的较大AWK脚本的一部分,并希望记录当前正在处理的文件,则可能会有所帮助。

答案 4 :(得分:0)

/ bin / ls为你完成这项工作,你可以从bash调用它。

$> /bin/ls
[.. List of files..]

解释您的问题,您可能有兴趣迭代此目录中的每个文件。这也可以使用bash来完成:

for f in `ls`; do
   echo $f;
done

答案 5 :(得分:0)

for f in *; do var=`find "$f" | wc -l`; echo "$f: $var"; done

这将打印目录名称和其中的文件数。 wc -l在这里返回文件+1(包括目录)的数量

示例输出:

aa: 4 
bb: 4 
cc: 1 
test2.sh: 1