我有以下一行:
70947344da 709473,production-a-709473,stg-a-709473 2018-08-27T10:54:30
我的输入是:production-a
,这是一个常量前缀。我希望得到如下输出:production-a-709473
试图将sed
与sed "s/.*/production-a/
一起使用”,但没有成功。
答案 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]\+'
\+
用于转义+
符号。