簡體   English   中英

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

[英]How to print all file names in a folder with awk or bash?

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

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

:)

find . -type f -maxdepth 1

如果您還想對子目錄遞歸執行此操作,請排除 -maxdepth 部分

以下是純 AWK 選項:

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

如果您想將它用作處理多個文件的更大 AWK 腳本的一部分,並且您想記錄當前正在處理的文件,這可能會有所幫助。

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

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

或(甚至更短)

printf '%s\n' *

或者,如果您想打印特定文件類型(例如.txt ),您可以嘗試以下操作:

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

或(甚至更短)

printf '%s\n' *.txt

/bin/ls 為您完成這項工作,您可以從 bash 調用它。

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

解釋您的問題,您可能有興趣遍歷此目錄中的每個文件。 這也可以使用 bash 來完成:

for f in `ls`; do
   echo $f;
done
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM