【发布时间】:2016-11-11 10:56:43
【问题描述】:
我正在尝试创建一个脚本,该脚本获取扩展名并在两列中报告用户和用户拥有的具有该扩展名的文件数量。 结果必须打印在report.txt中
这是我的代码。
#!/bin/bash
#Uncoment to create /tmp/test/ with 50 txt files
#mkdir /tmp/test/
#touch /tmp/test/arch{01..50}.txt
clear
usage(){
echo "The script needs an extension to search"
echo "$0 <extension>"
}
if [ $# -eq 0 ]; then
usage
exit 1
fi
folder="/tmp/test/"
touch report.txt
count=0
pushd $folder
for file in $(ls -l); do
grep "*.$1" | cut -d " " -f3 >> report.txt
done
popd
程序只是无休止地运行。而且我什至没有计算每个用户的文件。 如何仅使用 grep 和 cut 来解决此问题?
【问题讨论】:
-
你能给出输入和预期输出吗?
-
grep "*.$1" | ...greps 输入标准输入。你的程序永远在等待。我没有文件参数或缺少输入管道。 -
你可以用
find $folder -name "*.$1" -printf "%P\t%u\n" >> report.txt之类的东西替换 for 循环,然后是一些 wc。 -
你为什么使用
ls -l?您最终会获取所有文件属性,而不仅仅是名称。 -
ls *.$1 | wc -l怎么样。