gpt4 book ai didi

linux - 如何使用通配符 grep 查找匹配的单词,而不是周围的行?

转载 作者:太空狗 更新时间:2023-10-29 11:49:03 28 4
gpt4 key购买 nike

也许是个奇怪的问题,但我正在尝试对命令的输出进行 grep 以仅选择匹配的单词而不是行。这个词也有一个通配符。

git log --format=%aD <file> | tail -1 | grep -oh 201

命令的第一部分和第二部分检查文件的 git 日志,并获取与创建日期和时间相关的行。我正在尝试编写一个 bash 脚本来处理它创建的年份,所以我只需要捕获那个词(年份)。

查看 grep 文档,-o 专门打印匹配的单词(并且 -h 抑制文件名)。不过,我找不到任何允许匹配它匹配的单词的 rest 的东西(我可能只是间距)。

所以上一条命令的输出是:

201

我需要它(例如):

2017

帮助将不胜感激!

最佳答案

您可以使用 . 作为通配符:

$ echo 'before2017after' | grep -o '201.'
2017

或者,更好的是,将第四个字符指定为数字:

$ echo 'before2017after' | grep -o '201[[:digit:]]'
2017

注意事项:

  1. 由于您是从标准输入获取输入,因此没有文件名。因此,在这种情况下,-h 没有任何改变。

  2. [[:digit:]] 是一种指定数字的 unicode 安全方式。

关于linux - 如何使用通配符 grep 查找匹配的单词,而不是周围的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49311146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com