Это должно сделать это. Обратите внимание, что это предполагает, что строки из обоих файлов имеют то же число столбцов.
awk '
{
getline file2_line <"file2";
split(file2_line, fields_from_file2);
cur = 1;
while ( cur <= NF )
{
printf("%s ", $cur * fields_from_file2[cur]);
cur++;
}
printf("\n");
}
' file1
На самом деле, на CentOS 7, /bin/sh
является символической ссылкой на /bin/bash
, который является оболочкой, доступной по умолчанию на большинстве дистрибутивов Linux.
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 9 febr. 08:21 /bin/sh -> bash
(Если вышеприведенная команда возвращает Нет такого файла или директории
, то Вы правы, у Вас возникнет проблема. Тогда вы можете запустить , который sh
, чтобы узнать правильный путь)
Так что в случае, если у вас один и тот же вывод, что и у меня, используя #!/bin/sh
и #!/bin/bash
, вы получите один и тот же результат.
В качестве альтернативы, вы можете использовать этот shebang: #!/usr/bin/env sh
или #!/usr/bin/env bash
. В этом случае будет запущен первый sh
или bash
, доступный в Вашей PATH, независимо от того, что sh
установлено в /bin
, /usr/bin
, или где угодно. Хотя это может быть удобно для переноса, обратите внимание, что это может иметь некоторые проблемы с безопасностью, если у вас есть несколько исполняемых файлов с именами sh
в вашей PATH.
Вы можете позвонить в нее, любой переводчик, который вы хотите (Bash, CSH, ZSH, SH, Perl или что-нибудь).
#! / BIN / SH
POSIXLY-правильно, и он должен работать.
Что является выходом из LS / BIN | GreeP S
?
Кроме того, вы можете проверить ваши файловые разрешения. Это убило меня, когда я писал свои первые сценарии ( chmod + x. / Myscript.sh
).