1

我是 csh/tcsh 脚本的真正初学者,这就是为什么我需要你的帮助。问题是我必须浏览目录中的一些常规文件并找到那些在其内容中具有自己名称的文件。在下面的一段脚本中,我将遍历路径并使用 grep 在其内容中查找文件名。肯定正确的是 $something:q - 是我必须找到文件的路径数组。下一个变量是 name,其中只是当前文件的名称。例如:/home/computer/text.txt(路径)和:text.txt(名称) 我最大的问题是在其内容中查找文件的名称。我很难为此编写正确的 grep,因为我通过的文件和目录的名称很疯狂。这里是其中的一些:

/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/!_1
/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/dam/$user/:e/'/-r
/home/OS/pocitacove/testovaci_adresar/z/test3/skusime/ taketo/   taketo
/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/.-bla/.-bla/.a=b
/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/.-bla/.-bla/@
/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/.-bla/.-bla/:
/home/OS/pocitacove/testovaci_adresar/z/test4.pre_expertov/.-bla/.-bla/'ano'

foreach paths ($something:q)
    set name = "$paths:t"
    @ number = (`grep -Ec "$name" "$paths"`)

    if ($number != 0) then
        echo -n "$paths "
        echo $number
    endif

    @ number = 0
end
4

1 回答 1

1

您是否尝试过使用 grep -F,它假定输入是字符串文字并且不担心转义字符。

于 2013-10-26T10:21:48.603 回答