Знак доллара Perl/ Awk

#perl

#perl

Вопрос:

У меня есть переменная типа

 var=abcd cdef$0ghkl
  

Я пытаюсь использовать awk внутри perl и написал код, подобный

 $Var1=`echo "$var"|awk -F '{print $1}'`;
$Var2=`echo "$var"|awk -F '{print $2}'`;
  

Но $0 выдается как sh, а выходные данные получаются как cdefshghkl .. Как мы можем напечатать $0 вместо sh?

Ответ №1:

Вы можете получить доступ к переменным среды внутри perl через %ENV хэш, и вам не нужно, чтобы awk разделял строки для вас, вызывая оболочку. Perl отлично способен разделять строки.

 my ($var1, $var2) = split ' ', $ENV{var};
  

Комментарии:

1. Большое спасибо за быстрый ответ .. разделение сработало отлично

2. perl в основном был изобретен, потому что людям надоело выкладывать на awk , sed , cut и grep

3. @Kris Если этот ответ решил вашу проблему, вам следует установить флажок и сделать его принятым ответом.