就像标题中一样,我也想打印每个(文本)文件中子字符串出现的行号。
到目前为止我已经:
find /sys | grep "filesystem"
但它似乎只查看文件的名称和目录,而不查看其内容。
以及如何同时搜索多个字符串?因为我认为我应该另外搜索"*filesystem"
,"filesystem*"
并"*filesystem*"
包括该字符串的所有可能出现的情况。
先感谢您。
答案1
如果您不介意对文件名和内容使用两个不同的命令,那么以下命令将对您有所帮助。
find /sys -name "*filesystem*"
上面的命令将查找所有以“filesystem”作为文件名/目录名一部分的文件/目录。
grep -rn "filesystem" /sys/*
上面的命令将递归地查找内容中包含“filesystem”的所有文件,并打印出行号以及匹配的行。如果您只想打印行号而不打印内容,可以使用以下过滤器。您可以将 2 替换为您要打印的列号。
grep -rn "filesystem" /sys/* | awk -F":" {'print $2'}