我正在尝试自学Linux中的基本文件操作和脚本,但我已经碰壁了。现在我正在尝试输出一个类似
的表格FILENAME LINES TYPE
File1 22 File
File2 56 File
Folder1 N/A Directory
给定任何要搜索的目录。我一直在研究如何使用awk格式化输出,并使用grep和wc来尝试获取我的数据,但我有点迷失。据我所知,我完全是在咆哮错误的树。
答案 0 :(得分: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
删除前导空格。