Назад | Перейти на главную страницу

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

Но выходной формат неверен. Пожалуйста, научи меня, как это делать.

Одна возможность с 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