【发布时间】:2011-06-17 09:44:40
【问题描述】:
我需要一些帮助来组合脚本元素以形成读取输出。
基本上我需要为下面列出的文件夹结构获取用户的文件名,并使用文件类型为 *.ano 的用户计算文件夹中的行数
这显示在下面的摘录中,请注意文件名上的位置从前面开始计算并不总是相同的。
/home/user/Drive-backup/2010 Backup/2010 Account/Jan/usernameneedtogrep/user.dir/4.txt
/home/user/Drive-backup/2011 Backup/2010 Account/Jan/usernameneedtogrep/user.dir/3.ano
/home/user/Drive-backup/2010 Backup/2010 Account/Jan/usernameneedtogrep/user.dir/4.ano
awk -F/ '{print $(NF-2)}'
这将为我提供所需的用户名,但我还需要知道文件类型 *.ano 的用户文件夹中有多少非空行。我有下面的 grep,但我不知道如何将它们放在一起,以便它可以输出一个有意义的文件。
grep -cv '^[[:space:]]*$' *.ano | awk -F: '{ s+=$2 } END { print s }'
需要示例输出
UserA 500
UserB 2
UserC 20
【问题讨论】:
-
其中一些答案即使完美无瑕也令人恐惧。
ar=( "${@%/*}" ) printf "%s\000" "${ar[@]%/*}"看起来完全是胡言乱语,这是作为一个已经编写 Perl 十多年的人说的。如果这是您将要使用一段时间的东西,请帮自己一个忙,并在选择解决方案时考虑可维护性。
标签: linux bash scripting awk grep