2013-07-19 18 views
0

我試圖教自己在Linux中基本的文件操作和腳本,但我已經打了一堵牆。現在我試圖輸出一個表,給出類似輸出給定目錄的文件名/行/類型

FILENAME  LINES  TYPE 
File1  22  File 
File2  56  File 
Folder1  N/A  Directory 

當給定任何目錄來搜索。我一直在研究如何使用awk格式化輸出,並使用grep和wc來嘗試獲取我的數據,但我有點失落。就我所知,我完全吠叫了錯誤的樹。

+1

你有試過什麼嗎?或作業? –

+0

我將使用for循環,以及'wc'和'file'或'stat'命令。 –

回答

0

printf來格式化輸出,再看看命令file找到你的文件類型,wc打印出的行數等

這一切可以通過find | while read迴路來完成:

printf "%-20.20s %-3.3s %s\n", "File", "Lines", "Type" 
find . -type f -print0 | while read -d $'\0' file 
do 
file_name=$(basename $file) 
    lines="$(cat $file | wc -l | sed 's/^ *//')" 
    desc="$(file --brief "$file")" 
printf "%-20.20s %3.3s %s\n", "$file_name", $lines, "$desc" 
done 

$(...)語法將封閉命令的輸出作爲可分配給變量的字符串返回。我使用cat $file | wc -l來消除文件的名稱,然後使用sed刪除前導空格。

相關問題