Чтение записи Последовательное устройство не работает в сценарии оболочки

Podemos hacer esto usando el siguiente método:

perl -F'/(A1:|B1:)/' -lane '
   my %h = @F[1..$#F];
   print map { "$_$h{$_} " } qw/A1: B1:/;
' input.txt

Salida:

A1: gml.com B1: Your Test mail   
A1: abc.com  B1: Hi there 
A1: hml.com B1: Your new mail    
A1: def.com  B1: Test email 
A1: yml.com B1: hello world

Explicación:

  • divide cada registro en A1 :y/o B1 :e incluye también los "divisores".
  • el primer campo en la matriz @F debe ignorarse. por lo tanto, hay un número par de elementos en la matriz @F que luego se almacenan como un hash %h, con las claves "A1 :" y "B1 :".
  • Ahora iteramos sobre el orden prescrito a través de una matriz anónima, qw/.../, e imprimimos los resultados en stdout.
1
29.07.2019, 07:01
1 ответ

Хорошо, не знаю почему, но после того, как я перешел на использование оболочки bash, скрипт заработал. Оболочкой по умолчанию является тире.

1
27.01.2020, 23:41

Теги

Похожие вопросы