Удаление всех каталогов, кроме определенных типов файлов, из терминала Linux

С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, если предыдущая замена прошла успешно
0
06.11.2020, 23:15
1 ответ

Включите globstarи используйте шаблон **:

$ shopt -s globstar
$ rm -v **/!(*.mrc)
1
18.03.2021, 22:51

Теги

Похожие вопросы