Я могу по крайней мере объяснить, что, вероятно, происходит: .
После разрешений на выходе Ls -l
указывает на наличие политики SELinux, которая переопределяет разрешения на файл на основе какой программы доступа к файлу. Используйте LS -Z ~ / .ssh / seval_hosts
для отображения политики файла.
Предположительно / USR / BIN / SSH
и его компаньонные программы ( SSH-Keygen
, SCP
и т. Д.) - единственные программы, которые разрешены Доступ к этому файлу. Я скептически относится к этой политике: полезно редактировать ~ / .ssh / seleant_hosts
вручную. Однако я не понимаю, почему завиток захочет прочитать этот файл вместо того, чтобы отпустить SSH
и друзья делают это.
Вы можете использовать команду CCCON
для редактирования политики для этого файла и Restorecon
, чтобы восстановить политику по умолчанию. Смотрите в CentOS Wiki для получения дополнительной информации о SELinux.
У вас почти получилось.
awk 'NR==FNR{tmp[$1]=$2;next};{$6=tmp[$1] ; print }' file2.txt file1.txt
Где:
$ 6 = tmp [$ 1]
заменит шестое поле. Используйте join
:
join -j 1 -o 0,1.2,1.3,1.4,1.5,2.2 file1 file2
Где:
-j
определяет поле соединения обоих файлов-o
форматирует вывод так, как нужно