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

如何使用awk或bash打印文件夹中的所有文件名?,bash,awk,Bash,Awk,我想打印文件夹中的所有文件名。如何使用awk或bash进行打印 find . -type f -maxdepth 1 如果还希望对子目录递归执行-maxdepth部分,请将其排除在外 如果您还希望对子目录递归地执行-maxdepth部分,请将其排除在外。/bin/ls为您执行此任务,您可以从bash调用它 $> /bin/ls [.. List of files..] 在解释您的问题时,您可能会对遍历此目录中的每个文件感兴趣。这也可以使用bash完成: for f in `ls`; d

我想打印文件夹中的所有文件名。如何使用awk或bash进行打印

find . -type f -maxdepth 1
如果还希望对子目录递归执行-maxdepth部分,请将其排除在外


如果您还希望对子目录递归地执行-maxdepth部分,请将其排除在外。

/bin/ls为您执行此任务,您可以从bash调用它

$> /bin/ls
[.. List of files..]
在解释您的问题时,您可能会对遍历此目录中的每个文件感兴趣。这也可以使用bash完成:

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

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

$> /bin/ls
[.. List of files..]
在解释您的问题时,您可能会对遍历此目录中的每个文件感兴趣。这也可以使用bash完成:

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


:)

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

for f in *; do echo "$f"; done
或者(甚至更短)

或者,如果您想打印特定的文件类型(例如,
.txt
),您可以尝试以下方法:

for f in *.txt; do echo "$f"; done
或者(甚至更短)


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

for f in *; do echo "$f"; done
或者(甚至更短)

或者,如果您想打印特定的文件类型(例如,
.txt
),您可以尝试以下方法:

for f in *.txt; do echo "$f"; done
或者(甚至更短)


以下是纯AWK选项:

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

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

以下是纯AWK选项:

gawk '
    BEGINFILE {
        print "Processing " FILENAME
    };
' *
for f in *; do var=`find "$f" | wc -l`; echo "$f: $var"; done
如果您想将其用作处理多个文件的更大AWK脚本的一部分,并且希望记录当前正在处理的文件,那么它可能会有所帮助

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
这将打印目录名和其中的文件数
wc-l
此处返回文件计数+1(包括目录)

样本输出:

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

为什么要使用
awk
?它不是特别适合这个工作,而shell或Perl都是。不确定我是否理解正确,为什么不干脆
ls
?我想,因为ls会将目录显示为well@xception很容易排除目录和符号链接:
ls-l | egrep-v“^d | ^l”
另一个:
echo*
(它将显示目录和特殊文件以及常规文件-就像
ls
)。使用
find
-这是最好的。为什么要使用
awk
?它不是特别适合这项工作,而shell或Perl都是。不确定我是否理解正确,为什么不只是
ls
?我想,因为ls会将目录显示为well@xception很容易排除dir和符号链接:
ls-l|egrep-v“^d”^l”
另一个:
echo*
(它将显示目录和特殊文件以及常规文件,就像
ls
)使用
find
-这是最好的。在
for
循环中不需要使用
ls
。只需使用globbing:
表示f in*
@exception:我想这是提问者想要的。不过可能是错的。在
for
循环中不需要使用
ls
。只需使用globbing:
表示f in*
@exception:我想这是错的提问者想要的。但可能是错误的。我正在寻找如何使用awk列出文件并在其中运行-当文件名中有空格时,这将失败。我将只留下一个心理
--
,因为您似乎有404个点。我正在寻找如何使用awk列出文件并在其中运行-当文件名为a时,这将失败我有一个空格。我只留下一个心理
--
,因为你似乎有404个点。我会为f in*做更多类似
;做[-f$f]&&echo“$f”;完成
我会为f in*做更多类似
;做[-f$f]&&echo“$f”;完成
可能添加一个
nextfile
以避免进一步处理。可能添加一个
nextfile
以避免进一步处理。