Позвольте мне перефразировать вопрос, чтобы мы могли знать, правильно ли я понял вопрос.
Есть ли способ настроить мой компьютер для использования другого сервера имен (, вероятно, того, который мне нужен ), а не того, который предоставляется моим устройством точки доступа?
Ответ ДА .
resolvconf
имеет специальные файлы, которые следует добавлять перед (re )при создании resolv.conf
. И файл находится в /etc/resolvconf/resolv.conf.d/head
. Просто скажите resolvconf использовать другой сервер имен, добавив
nameserver 1.1.1.1
в файл. А затем запустите следующее для создания новогоresolv.conf
$ sudo resolvconf -u
Я бы сделал что-то вроде:
$ seq 6 | awk '{printf "%s", sep $0; sep = " - "}; END {if (NR) print ""}'
1 - 2 - 3 - 4 - 5 - 6
или:
$ seq 6 | paste -d ' - \n' - /dev/null /dev/null -
1 - 2
3 - 4
5 - 6
Или:
$ seq 5 | sed '$!N;s/\n/ - /'
1 - 2
3 - 4
5
Если это просто двухстрочный вывод, вы также можете:
$ seq 2 | { IFS= read -r a; IFS= read -r b; printf '%s\n' "$a - $b"; }
1 - 2
Что в оболочках вроде bash
, где read
и printf
являются встроенными, избавляет от необходимости выполнять отдельную команду. В bash
вы можете сохранить создание дополнительного процесса для выполнения этой обработки, установив параметр lastpipe
(только в не -интерактивных экземплярах оболочки ).
Подключить к этому:
sed -z 's|\n| - |'
Это использует GNU sed
для замены новой строки на -
.
awk 'ORS=" - "{print $0}' filename|awk '{gsub(/- $/,"",$0);print }'
выход
username - country
tr
может превратить одного персонажа в другого:
echo "username
country
town" | tr '\n' ' '
выход:
username country town
используйте tr -d
для замены символа (новой строки )ничем:
echo "username
country
town" | tr -d '\n'
выход:
usernamecountrytown
но если вы хотите заменить новую строку на несколько символов, tr
недостаточно (Я все же говорил об этом, потому что это очень простая команда ).
Но это можно сделать с помощьюsed
:
echo "username
country
town" | sed ":a; N; s/\n/ - /; ta;"
выход:
username - country - town