Добавить два файла с новой строкой

Стандартный файл — /etc/resolv.conf, но это может быть символическая ссылка.

напр. на CentOS 7:

% ls -l /etc/resolv.conf 
-rw-r--r-- 1 root root 70 Dec  9 10:57 /etc/resolv.conf

% cat /etc/resolv.conf
# Generated by NetworkManager
search spuddy.org
nameserver 10.0.0.134

В Debian 9

% ls -l /etc/resolv.conf 
lrwxrwxrwx 1 root root 35 Dec 21 23:05 /etc/resolv.conf -> /var/run/NetworkManager/resolv.conf

% cat /etc/resolv.conf
# Generated by NetworkManager
search spuddy.org
nameserver 10.0.0.134

Теперь 127.0.0.53 — это специальная запись для systemd-resolved, которая представляет собой прослушиватель DNS-заглушек, предоставляемый systemdи будет действовать как DNS-сервер для вашей машины. Таким образом возможно что это правильная запись DNS для вашей машины.

Вы можете узнать, какой сервер вы используете, с помощью такой команды, как nslookupилиdig

% nslookup www.google.com
Server:     10.0.0.134
Address:    10.0.0.134#53

Non-authoritative answer:
Name:   www.google.com
Address: 216.58.217.100

% dig www.google.com | grep SERVER
;; SERVER: 10.0.0.134#53(10.0.0.134)

В обоих случаях мы видим, что я использую 10.0.0.134для разрешения DNS.

fe80::1— это просто IPv6-адрес «локальной ссылки», а не IPv4-адрес.

-1
18.03.2021, 14:04
2 ответа

Вы можете написать эти две строчки в своем скрипте

echo -e "\n" >> /path/to/a.dat # If "\n" adds an extra new line and you don't want it just replace it with ""
cat /path/to/b.dat >> /path/to/a.dat

Этот код копирует содержимое из файлаb.datвa.datпосле добавления новой строки вa.dat.

0
18.03.2021, 22:25

Проблема в том, что a.datи, возможно, также b.dat, если он был сгенерирован таким же образом, является неполным текстовым файлом, поскольку в нем отсутствует завершающий символ новой строки.

Это означает, что если вы объедините два файла, например, с помощью. cat [ab].dat, вы получите helloworld(, вероятно, без новой строки в конце ).

То, что вы хотите иметь

hello
world

(с символом новой строки в конце последней строки ).

Это легко сделать:

{ cat a.dat; echo; cat b.dat; echo; } >c.dat

Это считывает данные из a.dat, добавляет символ новой строки с помощью echo, считывает данные из b.datи добавляет еще один символ новой строки с помощью echo. Результирующие данные записываются в c.dat, что вы сможете проверить, прежде чем использовать их для перезаписи a.dat.

Если вы хотите добавить к a.dat, т.е. не используя временный файл c.dat,затем используйте

{ echo; cat b.dat; echo; } >>a.dat

Это добавляет символ новой строки к неполной строке в конце a.dat, за которым следует содержимое b.datи еще один символ новой строки.

Еслиb.datуже имеет символ новой строки, удалите последний echo;из обеих приведенных выше команд.

0
18.03.2021, 22:25

Теги

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