unix - 查找包含 "grep"的特定单词出现的行号

标签 unix sed grep

grep能够提供指定单词出现的行号吗?

此外,可以使用grep从某行向下搜索一个单词?

最佳答案

使用grep -n 获取匹配的行号。

我认为没有办法让 grep 从某个行号开始。为此,请使用 sed。例如,要从第 10 行开始并打印行号和匹配行的行,请使用:

sed -n '10,$ { /regex/ { =; p; } }' file
<小时/>

要仅获取行号,您可以使用

grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/'

或者您可以简单地使用 sed:

sed -n '/regex/=' file

结合两个 sed 命令,您将得到:

sed -n '10,$ { /regex/= }' file

关于unix - 查找包含 "grep"的特定单词出现的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589929/

相关文章:

regex - 在多列文件中 - 从 Bash 中的小数中删除所有尾随 0

regex - Grep 正则表达式不包含字符串

ruby - 如何使用 Ruby 从包含撇号的字符串创建文件夹?

linux - Windows cmd/powershell 是否有等效的 pkexec?

json - sed 命令不选择值

正则表达式匹配唯一的子字符串

linux - 使用 RS 和 RT 在 awk 命令中匹配多个字符串

linux - 循环内打印语句

linux - 将两个 greps 和 awk 应用于相同的输入

sed 在 vagrant 提供中出错,但在手动执行中正常