从下面的文字中我想获取PATTY ALPHABATES-由HYPHEN-NUMBERS 分隔,例如在此文件“MGRAPP-713”中(它将针对每个文件进行更改,但PATTERN将保持不变)< / p>
123.txt REPORTS: restrict CBD [Jawad Hameed] [2018-01-31 16:31:00 -0500]`enter code here` debug [Jawad Hameed] [2018-01-31 16:09:08 -0500] debug [Jawad Hameed] [2018-01-31 15:59:52 -0500] Merge pull request #65 from HotelKey/MGRAPP-713 [GitHub] [2018-01-31 11:35:30 0100] MGRAPP-713 [sabrio] [2018-01-30 15:30:56 +0100]
我正在使用: grep'[A-Z0-9-]'123.txt
答案 0 :(得分:1)
你的问题不是很清楚。你总是在寻找那个特定的字符串吗?你想要整条生产线,还是那个领域?你正在寻找的字符串总是在行的开头吗?
基于我对你的意思的猜测,我建议:
$ awk '/^[A-Z]+-[0-9]/ {print $1}' mgrapp
MGRAPP-713
每当您想要打印与模式匹配的部分行时, awk 就是您的朋友。
修改强>
在评论中,您会稍微澄清一下您的目标。这是一个稍微复杂的解决方案:
$ awk '/^[A-Z]+-[0-9]/ {
match($1, /^[A-Z]+-[0-9]+/)
printf "%.*s\n", RLENGTH, $1 }' mgrapp
MGRAPP-713
但我无法为你编写程序。我只是在演示 awk 让你编写简单的程序来从文本文件中获取字符串。像任何强大的工具一样,学习需要时间。这是值得花时间的,因为,你知道,“运气有利于准备好的思想。”
答案 1 :(得分:0)
使用此:
[A-Z]+-[0-9]+
[A-Z]+
- 用于匹配所有大写字词,
-
- 对于连字符,
[0-9]+
- 代表数字