Я решил проблему, используя инструкции Амриша на Ask Ubuntu Stack Exchange, т.е. используя следующий код:
sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
решение bash
(при условии, что включена опция оболочки extglob - см. руководство по сопоставлению с образцом )
for i in 0.* ; do mv "$i" "${i##0.*(0)}" ; done
$ {i ##
удалить самое длинное совпадение с начала i
переменной 0.
соответствует последовательности символов 0.
* (0)
означает ноль или более вхождений 0 или это решение, предложенное @Costas, для которого не нужна опция extglob
for i in 0.* ; do mv "$i" "${i#${i%%[!0.]*}}" ; done
$ {i %%
удалить самое длинное совпадение с конца i
переменной *
любой символ, ноль или более раз [! 0.]
символы, кроме 0.
$ {i %% [! 0.] *}
эффективно удаляет с первого не 0
или .
до конца. Например: 35
удаляется для 0,035
, 1
для 0,001
, str0.00456a
для 0str0.00456a
и целая строка для str0.00456a
0,0
для 0,035
и 0,00
для 0.001
передается в $ {i #
, который затем удаляет эти символы из начала переменной, в результате чего 35
для 0,035
и 1
для 0,001
Дополнительная литература: Расширение параметров
С помощью rename
(prename
):
rename -n 's/^[^.]+\.0*([1-9]+)$/$1/' 0*
-n
выполните пробный запуск, если вас устраивают вносимые изменения, сделайте:
rename 's/^[^.]+\.0*([1-9]+)$/$1/' 0*
Пример:
% rename -n 's/^[^.]+\.0*([1-9]+)$/$1/' 0*
0.001 renamed as 1
0.002 renamed as 2
0.003 renamed as 3
0.035 renamed as 35