find / -name "php.ini"
我知道我可以找到上述命令来获取搜索文件的确切位置。我需要找到字符串oci8在此文件中。
由于我无法访问 GUI,所以我无法使用编辑器来为我执行此操作 :( 并且由于文件大小相对较大,我需要知道必须使用什么命令才能获取第一次出现的行号!?
答案1
您可以尝试以下find
命令来调用 awk。
find / -name "php.ini" -exec awk '/oci8/{print NR; exit}' {} \;
例子:
$ cat php.ini
http://stackoverflow.com
foo oci8
oci8
$ find . -name "php.ini" -exec awk '/oci8/{print NR; exit}' {} \;
2
解释:
搜索当前目录中的文件.
(/
表示根目录) 的名称php.ini
。如果找到具有该名称的文件,则awk '/oci8/{print NR; exit}' {}
对找到的文件执行此操作。
awk '/oci8/{print NR; exit}'
搜索包含字符串的行oci8
。如果找到,则打印相应的行号(print NR
)并突然退出(exit
) 从而不再进行进一步搜索。
通过 Perl
find / -name "php.ini" -exec perl -nle 'print $. and last if /oci8/;' {} \;
答案2
使用:grep
find
find / -name "php.ini" -exec grep -Hnm1 'oci8' {} +
grep
用于在文件中搜索模式。-H
和-n
标志分别允许打印文件名和匹配行的行号。-m
标志将搜索限制为一定数量的匹配行,在本例中为 1。