2017-10-19 66 views
-2

我正在尋找輸出的內容列表的大小格式,每個文件的類型和沒有擴展名的文件名。如何在bash中收集和格式化目錄內容的文件名,大小和擴展名?

我試過用ls grep和awk,但無濟於事。我不確定這可以做甚麼,有人可以幫助我嗎?

我正在尋找如下顯示的輸出;

Filename  FileSize  Extension 
    Filename  FileSize  Extension 
    Filename  FileSize  Extension 
    Filename  FileSize  Extension 

等等。

+0

至少顯示近似的預期結果,顯示它應該如何對待 – RomanPerekhrest

+0

對不起所以我期待輸出是這樣的。文件名文件大小文件類型 – NinsK

+0

'文件類型'考慮爲*擴展*? – RomanPerekhrest

回答

0

這裏不需要ls(實際上,不要使用它;請參閱Why you shouldn't parse the output of ls)。

原生的bash:

#!/usr/bin/env bash 

for file in *; do     # iterate over contents of current directory 
    [[ -f "$file" ]] || continue # skip things that aren't files 
    size=$(wc -c <"$file")   # collect size 
    # ...and actually format and print metadata 
    printf '%20q %20s %q\n' "${file%.*}" "$size" "${file##*.}" 
done 

這裏,%q用於確保即使與不可打印的部件名稱明確格式(這樣你就可以告訴一個名之間用空格和使用標籤名稱的差異,因爲例)。

相關問題