Чистое Решение для Bash, с помощью расширения параметра. Посмотрите это для объяснения PE.
foo='date-web2-v.7.052509.csv'
file=${foo%*.csv}
date=${file##*.}
month=${date:0:2}
day=${date:2:2}
year=${date:4:2}
Я, вероятно, использовал бы Perl для этого и круглой скобки использования для получения то, что я хочу в группах от регулярного выражения.
Я также люблю использовать Dnsmasq на своей локальной машине, и у меня была эта проблема также. Вот решение:
От man 5 resolver
:
The configuration for a particular client may be read from a file
having the format described in this man page. These are at present
located by the system in the /etc/resolv.conf file and in the files
found in the /etc/resolver directory.
/etc/resolver/
не присутствует по умолчанию; необходимо создать его сами.
Также из страницы справочника:
domain
Domain name associated with this resolver configuration. This
option is normally not required by the Mac OS X DNS search system
when the resolver configuration is read from a file in the
/etc/resolver directory. In that case the file name is used as the
domain name.
Таким образом, если Вы хотели все запросы DNS для высокоуровневого домена dev
чтобы быть направленными к локальному серверу имен, Вы были бы:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
не изменяет файлы в /etc/resolver/
, таким образом, эта установка сохранится посредством изменений сети и перезагрузок.
К сожалению, с OS X Lion, лучший сопоставитель (как показано scutil --dns
) исчезает, когда никакие интерфейсы не активны:
# scutil --dns # Online
DNS configuration
resolver #1
nameserver[0] : 127.0.0.1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
# scutil --dns # Offline
DNS configuration
resolver #1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
Заметьте, что сопоставитель № 1 пуст, но что/etc/resolver произошел, запись сервера имен остается.
Оказывается этим, так как можно указать домен сопоставителя непосредственно в/etc/resolver/файле, указав специальный интернет-корневой домен .
вызывает создание глобальной записи сопоставителя, которая похожа:
resolver #8
nameserver[0] : 127.0.0.1
Теперь все запросы DNS направляются к localhost, даже когда офлайн.
Конечно, необходимо будет все еще разрешить выбранные домены как 127.0.0.1 использования, что-то как dnsmasq's - обращается к опции:
# dnsmasq --address=/dev/127.0.0.1
networksetup -setdnsservers Ethernet 127.0.0.1 networksetup -setdnsservers Wi-Fi 127.0.0.1 ...
nameserver 127.0.0.1 domain .
cf. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
Почему бы не сделать записи в/etc/hosts вместо этого? Я испытываю затруднения, думающие о ситуации, куда необходимо было бы на самом деле выполнять полноценный сервер DNS. Я использую записи файла хоста все время для выполнения вещей как это на моих Mac.
Сопоставитель в OS X работает по-другому, чем это в Linux или другом Unixes. Это - вероятно, часть того, что вызывает Вас горе. Как, например, это имеет предпочтения, для которого метода разрешения использовать сначала и это кэширует результаты всех запросов сроком на время.
Вы добавили сервер DNS к интерфейсу в Сетевой предпочтительной области? Это должно гарантировать, что сопоставитель использует тот сервер, поскольку это - запросы, должен он решать искать запись DNS.
(отвечающий b/c я не могу прокомментировать еще...),
Как Вы идете офлайн?
(лучше всего ответьте, что я добрался прямо сейчас),
# man -S 5 resolver
.
.
.
Note that the /etc/resolv.conf file,
which contains configuration for the default (or "primary") DNS resolver
client, is maintained automatically by Mac OS X and should not be edited manu-
ally. Changes to the DNS configuration should be made by using the Network
Preferences panel.
Так, необходимо смочь ввести что-то в UI, и он должен придерживаться. Я сделал это пару раз, когда я не имел как сервер DNS, мой локальный сервер DHCP обеспечивает.
OSX имеет/etc/dhcp3/dhclient.conf конфигурационный файл, который имеют нормальные конфигурации клиента DHCP Linux/UNIX?
Если так, это должно иметь строку, для которой можно не прокомментировать
prepend domain-name-servers 127.0.0.1;
чтобы иметь клиента DHCP всегда добавляют что строка к Вашему resolv.conf
Попытайтесь добавить второй сервис Ethernet, настроенный со статическим адресом и 127.0.0.1 как Ваш сервер DNS. Или, добавьте сеть Location, которая устанавливает Ваш сервер DNS на 127.0.0.1. Оба из этих изменений были бы внесены в "Установках системы" под панелью "Network".
scutil --dns
при отсутствии соединения с Интернетом все, которое я добираюсь,No DNS configuration available
, я следовал инструкциям выше, но никакой удаче – MatthewLee 23 October 2014 в 20:36