我正在尝试从字符串中提取JIRA票号。Jira票可能在行中的任何位置被提及,例如:1.来自配置变更/REL-12345的合并拉式请求#13871.释放度-12345:在配置级别启用XAPI我只想将REL-12345作为输出。
wxclj1h51#
grep -Eow 'REL-[0-9]+'
+是一个或多个,用于指定N个数字(例如5):
+
grep -Eow 'REL-[0-9]{5}
{3,6}
{5,}
man grep -> /Repetition
-o
-w
WREL-12345
grep -Eow 'REL-[[:alnum:]]+'
REL-
5t7ly7z52#
如果这是标准.....输入:* 合并来自配置变更/REL-12345的拉式请求#1387 *
echo "Merge pull request #1387 from Config-change/REL-12345" | cut -d/ -f2
输入:*REL-12345:在配置级别启用XAPI *
echo "REL-12345: Enable XAPI at config level" | cut -d: -f1
aemubtdh3#
您可以将String传递给sed,并使用REGEX进行替换,如下所示:
sed
myString="This is REL-12345 a test string " sed -n 's/.*\(\REL-5*[0-9]*\).*/\1/p' <<< $myString
这将返回:REL-12345
REL-12345
pdkcd3nj4#
示例数据:
$ cat jira.dat Merge pull request #1387 from Config-change/REL-12345 REL-12346: Enable XAPI at config level
使用bash正则表达式匹配和得到的BASH_REMATCH[]的一个想法:
bash
BASH_REMATCH[]
regex='(REL-[[:digit:]]+)' while read -r line do printf "\n########## ${line}\n" [[ "${line}" =~ ${regex} ]] && echo "${BASH_REMATCH[1]}" done < jira.dat
这会产生:
REL-12345 REL-12346
yhxst69z5#
使用grep的一个想法是:
grep
$ grep -Eo 'REL-[[:digit:]]+' jira.dat REL-12345 REL-12346
5条答案
按热度按时间wxclj1h51#
+
是一个或多个,用于指定N个数字(例如5):{3,6}
为3到6,{5,}
为5或更大,等等。man grep -> /Repetition
以获取更多详细信息。-o
只打印匹配的字符串-w
仅匹配完整的单词,即避免匹配WREL-12345
(例如)grep -Eow 'REL-[[:alnum:]]+'
表示字母和数字(在REL-
之后)。5t7ly7z52#
如果这是标准.....
输入:* 合并来自配置变更/REL-12345的拉式请求#1387 *
输入:*REL-12345:在配置级别启用XAPI *
aemubtdh3#
您可以将String传递给
sed
,并使用REGEX进行替换,如下所示:这将返回:
REL-12345
pdkcd3nj4#
示例数据:
使用
bash
正则表达式匹配和得到的BASH_REMATCH[]
的一个想法:这会产生:
yhxst69z5#
示例数据:
使用
grep
的一个想法是: