Есть ли способ написать регулярное соответствие в рыбьей раковине?

#glob #fish

Вопрос:

Файлы имеют общий шаблон.

 feed_predict.data.4.202.0
feed_predict.mdl.4.202.0
feed_predict.so.4.202.0
feed_predict.xml.4.202.0
 

Я хочу перемещать файлы пакетами.

 for x in feed_predict{.*}4.202.0;
    //ls $x //nothing prints here
    sudo mv $x $1.4.17.0;
end
 

Но здесь $x пуст.

Комментарии:

1. Это должно быть for x in feed_predict*4.202.0; do.... done

2. Кстати, это не проблема с регулярным выражением, это проблема с глобусом и, как правило, *nix/fish.

Ответ №1:

Вы можете использовать базовое имя со старым суффиксом, чтобы удалить его из имени файла, а затем объединить его с новым суффиксом:

 for x in feed_predict.*.4.202.0;
    sudo mv $x (basename $x .4.202.0).4.17.0
end