Grep --only-match 不带换行符

Grep --only-match 不带换行符

我想使用grep命令从我的数据文件中提取一些字符串。

数据文件格式

a=1,b=2,c=3,
a=4,b=5,c=6,

我想要输出格式

a=1,c=3,
a=4,c=6,

我尝试了下面的命令

grep -Po 'a=.*?,|c=.*?,' data

但输出格式不正确。请教我该怎么做。

答案1

一种可能性sed如下。

sed -n 's/\(a=.\?,\)\(.*\)\(c=.\?\)/\1\3/p' data

更通用的正则表达式如下。

sed -n 's/\([a-zA-Z]=.\?,\)\([a-zA-Z]=.\?,\)\([a-zA-Z]=.\?,\)/\1\3/p' input

相关内容