使用 sed 仅获取“grep -in”的行号

发布于 2024-12-02 09:59:37 字数 100 浏览 0 评论 0原文

我应该使用哪个正则表达式来仅从 grep -in 输出中获取行号? 通常的输出是这样的: 241113:keyword

我只需要从 sed 的输出中获取“241113”。

Which regexp should I use to only get line number from grep -in output?
The usual output is something like this:
241113:keyword

I need to get only "241113" from sed's output.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

迷乱花海 2024-12-09 09:59:37

我建议 cut :

 grep -in keyword ... | cut -d: -f1

如果你坚持使用 sed,

 grep -in keyword ... | sed 's/:.*$//g

I suggest cut

 grep -in keyword ... | cut -d: -f1

If you insist with sed:

 grep -in keyword ... | sed 's/:.*$//g
李白 2024-12-09 09:59:37

您不需要使用 sed。砍就够了。只需将 grep 的输出通过管道传递到

cut -d ':' -f 1

作为示例:

grep -n blabla file.txt | cut -d ':' -f 1

You don't need to use sed. Cut is enough. Just pipe grep's output to

cut -d ':' -f 1

As an example:

grep -n blabla file.txt | cut -d ':' -f 1
身边 2024-12-09 09:59:37

就我个人而言,我喜欢 awk

grep -in 'search' file | awk --field-separator : '{print $1}'

Personally, I like awk

grep -in 'search' file | awk --field-separator : '{print $1}'
柳絮泡泡 2024-12-09 09:59:37

正如其他答案中所述,cut 是正确的工具;但如果你真的想使用瑞士军刀,你也可以使用awk:

grep -in keyword ... | awk -F: '{print $1}'

或者再次使用grep:

grep -in keyword ... | grep -oE '^[0-9]+'

As said in other answers, cut is the right tool; but if you really want to use a swiss-army knife, you can also use awk:

grep -in keyword ... | awk -F: '{print $1}'

or using grep again:

grep -in keyword ... | grep -oE '^[0-9]+'
旧城空念 2024-12-09 09:59:37

以防万一有人想知道这一切是否可以在没有 grep 的情况下完成,即仅使用 sed ...

echo '
a
b
keyword
c
keyWord
x
y
keyword
Keyword
z
' |
sed -n '/[Kk][Ee][Yy][Ww][Oo][Rr][Dd]/{=;}'
#sed -n '/[Kk][Ee][Yy][Ww][Oo][Rr][Dd]/{=;q;}'  # only line number of first match

Just in case someone is wondering if all this could be done without grep, i.e. with sed alone ...

echo '
a
b
keyword
c
keyWord
x
y
keyword
Keyword
z
' |
sed -n '/[Kk][Ee][Yy][Ww][Oo][Rr][Dd]/{=;}'
#sed -n '/[Kk][Ee][Yy][Ww][Oo][Rr][Dd]/{=;q;}'  # only line number of first match
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文