Я не большой гуру sed
, и поэтому я не могу сделать это только одной командой, хотя, безусловно, есть способы. Но вот с двумя командами sed вот что я получил:
sed -e 's/CARD_NUMBER=\([0-9]*\)\([0-9]\{4\}\)/\1\
\2/' | sed -e '1s/./x/g ; N ; s/\n//'
Обратите внимание на встроенную новую строку .
Поскольку sed работает по строкам, сначала я делю номер карты на начальную часть и последние четыре цифры, разделяя их новой строкой (первая команда sed). Затем я маскирую начальную часть (1s/./x/g
) и удаляю новую строку (N ; s/\n//
).
Удачи!