СGNU sed
$ s='some name;another thing; random; value value value value value'
$ echo "$s" | sed -E ':a s/^(.*random;.*) /\1,/; ta'
some name;another thing; random;,value,value,value,value,value
:a
табличкаa
s/^(.*random;.*) /\1,/
здесь (.*random;.*)
будет захватывать все до random;
в строке ввода и столько символов, сколько необходимо, пока после этого не будет пробела, затем в разделе замены используйте обратную ссылку, чтобы сохранить захваченную строку и заменить пробел символом запятой random;
, это сохранит пробелы только до первого вхождения ta
перейти к метке a
, если предыдущая замена прошла успешно Включите globstar
и используйте шаблон **
:
$ shopt -s globstar
$ rm -v **/!(*.mrc)