Как объединить многострочный вывод команды в одну строку?

Позвольте мне перефразировать вопрос, чтобы мы могли знать, правильно ли я понял вопрос.

Есть ли способ настроить мой компьютер для использования другого сервера имен (, вероятно, того, который мне нужен ), а не того, который предоставляется моим устройством точки доступа?

Ответ ДА .

resolvconfимеет специальные файлы, которые следует добавлять перед (re )при создании resolv.conf. И файл находится в /etc/resolvconf/resolv.conf.d/head. Просто скажите resolvconf использовать другой сервер имен, добавив

nameserver 1.1.1.1

в файл. А затем запустите следующее для создания новогоresolv.conf

$ sudo resolvconf -u

-1
26.08.2020, 01:15
4 ответа

Я бы сделал что-то вроде:

$ 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(только в не -интерактивных экземплярах оболочки ).

2
18.03.2021, 23:09

Подключить к этому:

sed -z 's|\n| - |'

Это использует GNU sedдля замены новой строки на -.

0
18.03.2021, 23:09
 awk 'ORS=" - "{print $0}' filename|awk '{gsub(/- $/,"",$0);print }'

выход

username - country
0
18.03.2021, 23:09

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
2
18.03.2021, 23:09

Теги

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