Достаточно достижимо сawk
:
$ awk 'NR==FNR{split($0,a);}NR!=FNR{for(i=1;i<=NF;i++) print a[i],$i}' foo.txt bar.txt
foo1 bar1
foo2 bar2
foo3 bar3
foo4 bar4
foo5 bar5
foo6 bar6
foo7 bar7
foo8 bar8
foo9 bar9
foo10 bar10
foo=bar && somecmd
во многом совпадает с (, так как присваивание вряд ли завершится ошибкой)
foo=bar; somecmd
то же, что и (в отдельных строках)
foo=bar
somecmd
, что является назначением переменной оболочки с именем foo
, а затем запуском команды somecmd
. Если foo
не является export
ed (переменные оболочки не являются по умолчанию ), то они не представлены в среде somecmd
. Но вы можете использовать в той же оболочке.
См., например,.
Вы можете объединить команды в одну строку с помощью &&, чтобы они выполнялись последовательно -при условии, что все предыдущие команды выполняются успешно. Каждый работает в оболочке как -и не изменяет оболочку. Таким образом, каждый получает переменные среды из оболочки, в которой он работает.
$ LC_ALL=C && commandB
--> выполнить LC _ALL=C, и если он возвращает 0 в оболочку, затем выполнить команду B (со средой оболочки по умолчанию)
$ LC_ALL=C commandA
--> установить переменную LC _ALL в C и выполнить команду A с этими изменениями в среде (, эффективно выполняя эту одну команду)