Преобразование содержимого файла в нижний регистр и сохранение результата в том же файле [дубликат]

Вы можете только это сделать если ваш модем или маршрутизатор позволяет запрашивать эту информацию.IP-адрес назначается интерфейсу WAN / Internet на маршрутизаторе или модеме, поэтому у вас должна быть возможность запросить его или подключиться к интернет-службе, которая затем сообщит вам, что это было.

Вы можете использовать DNS для получения ответа, используя это,

dig + short @ resolver1.opendns.com myip.opendns.com

, но для его получения он все равно обращается к внешней службе.

Итак, либо запросите ваш маршрутизатор (если есть интерфейс, который вы можете использовать), либо используйте внешнюю службу.

Конечно, если ваш маршрутизатор является Linux-машиной, вы просто используете ip или ipconfig для запроса интерфейса WAN.

3
21.01.2017, 06:06
2 ответа

Но когда я пытаюсь сохранить вывод во входном файле, он не работает. Входной файл пуст после выполнения команды. Почему?

Потому что > input заставляет оболочку усекать файл перед выполнением команды tr . Кстати, вы можете обойти это с помощью более продвинутой обработки дескрипторов в Bash :

exec 8<>input
exec 9<>input
tr '[A-Z]' '[a-z]' <&8 >&9

exec # <> file открывает файл в дескрипторе # при чтении -Режим записи без усечения.

3
27.01.2020, 21:09

Если у вас есть GNU sed , вы можете использовать

sed -i 's/.*/\L&/' input
  • -i изменить файл на месте
  • s / old / new / заменить старый на новый
  • . * любые символы в каждой строке
  • \ L нижний регистр
  • и совпавшие pattern
8
27.01.2020, 21:09

Теги

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