嘿fellas我在这里有 // Usage:
searchObjectForType(window, Pancake); // returns a number.
function searchObjectForType(obj,type){
// Keep track of objects in stack so we don't overflow by searching into the same objects;
var stackObjs = [];
function recursiveProbe(obj){
var foundCount = 0;
var objType;
// Some types will throw (iframes/nulls/..)
try{
objType = obj.toString();
}
catch(err){
return 0;
}
// Skip document/previous objects as we know they won't have any.
if(typeof obj === "string" || stackObjs.indexOf(objType)>=0 || obj===document){
return 0;
}
else{
stackObjs.push(objType);
}
for (var i in obj){
var prop = obj[i];
if(prop instanceof type){
foundCount++;
}
else{
foundCount += recursiveProbe(prop);
}
}
// Remove this type from stackObjs so we can search future types.
stackObjs.splice(stackObjs.indexOf(obj.toString()),1);
return foundCount;
}
return recursiveProbe(obj);
}
这个命令,它隐藏了cwd中隐藏文件的数量。
1st qustion为什么上面的命令与ls -la | egrep '^-' | egrep '^([^ ]+[ ]+){8}[.]' | wc -l
具有相同的输出?我的意思是删除多个空格如何在不编写适当命令的情况下完成?
此外,我不理解第二个egrep的动作,有人向我解释它的分离。
答案 0 :(得分:1)
tr -s' ': -
它只能抑制空间。
ls -la将所有文件和目录以及文件逐行列出。
因此输出没有变化,因为tr命令不会抑制任何新行。
2
在开始时,输入行确实包含除空格之外的任何字符,之后它包含一个或多个空格,这是在组中。所以就像这样的8组必须在那之后才需要。(点)。
实施例: -
egrep与以下几行匹配。
drwxxr---x 1 sureshkumar sureshkumar 4096 May 12 10:21 .
drwxxr---x 1 sureshkumar sureshkumar 4096 May 12 10:21 ..
以下行不匹配。
-rw-rw-r-- 1 sureshkumar sureshkumar 6361 May 12 17:30 1.c
-rwxrwxr-x 1 sureshkumar sureshkumar 12093 May 12 17:30 a.out
-rw-rw-r-- 1 sureshkumar sureshkumar 0 May 12 17:30 a.txt
-rw-r--r-- 1 sureshkumar sureshkumar 34326 May 12 10:58 ping.c
-rw-r--r-- 1 sureshkumar sureshkumar 24951 May 12 15:48 ping_common.c
-rw-r--r-- 1 sureshkumar sureshkumar 8002 May 11 17:26 ping_common.h
只需egrep匹配隐藏的文件和目录。
答案 1 :(得分:1)
让我们一个接一个。
ls -la
打印出所有文件(包括隐藏文件)并列出它们
附加信息,作为用户权利,空间和最后修改。egrep
指定它只打印文件,而不是
目录,因为它说显示所有以“ - ”开头,这些
以此符号开头的是文件。tr
用于替换所有重复的实例
具有单个字符的字符,在本例中为空格。egrep
它的作用是匹配隐藏文件和
目录并打印找到多少相似的行,这实际上意味着发生的次数,所以它找到了目录和文件的相同名称的次数(对于当前目录,你是
当然)。答案 2 :(得分:0)