用于在文本文件中查找字母数字和连字符 PATTERN 的正则表达式



从下面的文本中,我想获取模式 ALPHABATES-由连字符数字分隔,例如在此文件"MGRAPP-713"中(每个文件都会发生变化,但模式将保持不变(

123.txt报告:限制CBD [贾瓦德·哈米德] [2018-01-31 16:31:00 -0500]'在此输入代码'调试 [贾瓦德·哈米德] [2018-01-31 16:09:08 -0500]调试 [贾瓦德·哈米德] [2018-01-31 15:59:52 -0500]来自 HotelKey/MGRAPP-713 的合并拉取请求 #65 [GitHub] [2018-01-31 11:35:30 0100]MGRAPP-713 [萨布里奥] [2018-01-30 15:30:56 +0100]

我正在使用:grep '[A-Z0-9-]' 123.txt

你的问题不是很清楚。 你一直在寻找那个特定的字符串吗? 你想要整条线,还是只想要那个字段? 您要查找的字符串是否总是位于行首?

根据我对你的意思的猜测,我建议:

$ awk '/^[A-Z]+-[0-9]/ {print $1}' mgrapp 
MGRAPP-713

每当您想打印与图案匹配的线条的一部分时,awk 都是您的朋友。

编辑

在您的评论中,您在一定程度上澄清了您的目标。 这是一个稍微复杂的解决方案:

$ awk '/^[A-Z]+-[0-9]/ {
     match($1, /^[A-Z]+-[0-9]+/) 
     printf "%.*sn", RLENGTH, $1 }' mgrapp
MGRAPP-713

但我不能为你编写程序。 我只是在演示awk允许您编写简单的程序来从文本文件中获取字符串。 像任何强大的工具一样,学习需要时间。 这是值得花费的时间,因为,你知道,"运气偏爱有准备的头脑。

使用这个:

[A-Z]+-[0-9]+

[A-Z]+ -- 用于匹配所有大写字母,

- -- 对于连字符,

[0-9]+ -- 用于数字

相关内容

最新更新