我想在文件夹中打印所有文件名。如何使用awk或bash执行此操作?
答案 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