【发布时间】:2012-12-24 07:39:34
【问题描述】:
【问题讨论】:
【问题讨论】:
将您的grep -n 输出管道化,通常看起来像:
11: stuff that matched
43: more stuff that matched
通过 sed 剥离出匹配的部分:
grep -n pattern file | sed -e 's/:.*//g'
11
43
【讨论】:
grep -n 或 --line-number 选项将为您执行此操作。您可以在 grep 帮助文件中找到这些信息,您可以使用grep --help 或grep --help | less 来更仔细地阅读它。还可以考虑使用手册页:man grep
【讨论】:
你也可以使用awk。
grep -n word file | awk -F: '{ print $1 }'
正如@Barmar 指出的那样,您可以只使用awk 单线:
awk '/regex/ { print NR }' file
由于您没有awk,您也可以使用cut:
grep -n word file | cut -d: -f1
【讨论】:
awk,为什么还要麻烦grep,因为awk可以做正则表达式匹配自己并且它有一个带有行号的变量?