重击/带常数前缀的单词

时间:2018-08-28 12:54:04

标签: bash

我有以下一行:

70947344da  709473,production-a-709473,stg-a-709473  2018-08-27T10:54:30

我的输入是:production-a,这是一个常量前缀。我希望得到如下输出:production-a-709473

试图将sedsed "s/.*/production-a/一起使用”,但没有成功。

2 个答案:

答案 0 :(得分:0)

您可以使用带有grep选项(或简称为--only-matching)的GNU -o来“仅打印匹配行的匹配(非空)部分”。 / p>

假设唯一使用的定界符是逗号,则可以执行以下操作:

grep --only-matching "$input[^,]*"

在这里,我假设$input是您的前缀,并且您已经验证它不包含正则表达式。

答案 1 :(得分:0)

您的正则表达式不正确。

您需要捕获production-a,后跟一定数量的数字(不止一个),导致以下正则表达式:production-a-\d+,也可以将其重写为production-a-[0-9]+ < / p>

要提取此输出,可以使用grep命令。一个示例如下:

grep -o 'production-a-[0-9]\+'

\+用于转义+符号。