perl -lane '
@ARGV and $h{$F[0]}=$F[1],next;
print join $", map { $_, $h{$_} // "NA" } @F;
' File2 File1
GeneA Ensembl1 GeneB Ensembl2
GeneA Ensembl1 GeneD NA
GeneC Ensembl3 GeneB Ensembl2
%h
с ключами GeneA, GeneB и т. д. => значения представляют собой ансамбли из File2. Обратите внимание, что при обработке File2 @ARGV имеет один элемент, поэтому @ARGV в скалярном контексте возвращает значение true. ports/mail/mutt
раствор:Это связано с тем, что mutt
не изменяет конверт SMTP в соответствии с переменной среды EMAIL
, поэтому вместо этого необходимо использовать следующее: tcsh синтаксис:
env EMAIL=`whoami`@`hostname`.example.org \
mutt -s "`history 1`" -e 'set envelope_from' email@example.org
По сути, вы должны не только указать свой адрес электронной почты в переменной окружения EMAIL
, но также передать -e 'set envelope_from'
в mutt
, что по умолчанию равно no
, согласноhttp://www.mutt.org/doc/manual/#use-envelope-from.
mail(1)
раствор:Другим вариантом является использование фактаmail(1)
команды , позволяющей передать любуюsendmail-flags
прошедшуюспецификациюto-addr
:
mail [-EIinv] [-a file] [-b bcc-addr] [-c cc-addr] [-r rcfile]
[-s subject] to-addr... [- sendmail-flags]
Похоже, что это явно задокументировано с примером -f
только на странице руководства NetBSD для почты (1 ), а не в OpenBSD , FreeBSD . ], OS X или macOS:
Sending mail
To send a message to one or more people, mail can be invoked with argu-
ments which are the names of people to whom the mail will be sent. You
are then expected to type in your message, followed by a `control-D' at
the beginning of a line.
Any flags following the list of recipients, will be passed, together with
their arguments, directly to sendmail(1). For example to change your
From address to somebody@somewhere.net you can specify:
mail recipient -f somebody@somewhere.net
Например, следующее будет работать так же, как mutt
пример выше; успешно протестировано на OS X:
mail -s "`history 1`" email@example.org -f `whoami`@`hostname`.example.org
N. B. Порядок имеет значение; ине будет работать; подробности смотрите выше! mail -f wrong@example.org -s subject email@example.org