如何使用awk或bash打印文件夹中的所有文件名?
我想打印文件夹中的所有文件名。如何使用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
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
以避免进一步处理。