Вы должны установить SSH на основе ключей в вашей ситуации. Независимо от того, из чего он вызван, сам инструмент SSH просто считывает ключи конфигурации И, И если удаленный сервер принимает аутентификацию только по ключу, у вас не будет запроса пароля. Просто создайте ключ на удаленном хосте под пользователем, которого вы хотите выполнить, включите аутентификацию на основе ключа на локальном хосте И сделайте «su» пользователю, под которым вы будете вызывать эту строку (независимо от метода: cron, shell и т. д.) - и вставьте удаленный ключ локально в качестве ключа для этого хоста. Это оно!
join
+sort
solución:
join -o1.1,1.2,1.3,2.2 -a1 -e"null" <(sort file1.txt) <(sort file2.txt)
La salida:
a 7 nah anau
b 0 blah null
c 5 bah bau
d 1 gah cau
e 0 hah null
Solución usandojoin
:
join file1.txt file2.txt -e null -o auto -a 1 2>/dev/null
No está claro en las páginas man, pero la opción -e
solo funciona con -o
.
Pude resolverlo con awk
. Encontré que en mis datos como en el ejemplo, el segundo campo de file1.txt
tiene que ser 0 para que falte en file2.txt
--, lo que ayudó. El guión se ve así:
NR==FNR {
a[$1]=$2;next
}
$2!=0{
print $0,a[$1]
}
$2==0{
print $0,"null"
}
Invocación:
awk -f merge.awk file2.txt file1.txt