0

我正在尝试在 linux 中自学基本的文件操作和脚本编写,但我碰壁了。现在我正在尝试输出一个给出类似的表格

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

当给定任何要搜索的目录时。我一直在研究如何使用 awk 格式化输出,并可能使用 grep 和 wc 来尝试获取我的数据,但我有点迷失了。据我所知,我完全找错了树。

4

1 回答 1

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删除前导空格。

于 2013-07-19T17:16:27.280 回答