1

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

4

6 回答 6

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

:)

于 2012-09-18T12:15:02.093 回答
4
find . -type f -maxdepth 1

如果您还想对子目录进行递归,请排除 -maxdepth 部分

于 2012-09-17T16:00:02.210 回答
2

以下是纯 AWK 选项:

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

如果您想将它用作处理多个文件的更大的 AWK 脚本的一部分并且想要记录当前正在处理的文件,这可能会有所帮助。

于 2019-10-30T09:15:44.710 回答
1

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

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

或(甚至更短)

printf '%s\n' *

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

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

或(甚至更短)

printf '%s\n' *.txt
于 2015-10-17T15:35:58.600 回答
0

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

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

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

for f in `ls`; do
   echo $f;
done
于 2012-09-17T16:01:26.340 回答
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
于 2019-11-21T20:42:30.440 回答