Eu não acho que haja algum comando para modificar facilmente o arquivo de entrada para este problema.
Eu não testei todos os casos de canto, este comando sed
ajuda quando a última linha de entrada contém o parâmetro 'Local'
$ sed -i -E '$ s|^(Place.*)|\nShop=N/A|' /home/user/Shop.log
Em seguida, usando perl
, os parâmetros ausentes são adicionados com o valor 'N / A' e a saída é passada para pr
$ perl -e '@file = 'cat abc.txt' ; @s = ("Place", "Location", "Shop");
> for($j=0;$j<=$#file;) {if($file[$j] !~ /^$s[$i]/){print "$s[$i]=N/A\n"}
> else {print $file[$j]; $j++} $i=($i+1)%3;}
> ' | pr -ats, --columns 3 > final.txt
$ cat final.txt
Place=hyd,Location=Abids,Shop=Bigbazar
Place=Mumbai,Location=Worli,Shop=ShoppersStop
Place=Hyd,Location=Madhapur,Shop=N/A
Place=Mumbai,Location=Thane,Shop=Adidas
Place=hyd,Location=Abids,Shop=N/A
Place=Mumbai,Location=N/A,Shop=ShoppersStop
Observe que paste -d, - - -
também pode ser usado em vez de pr -ats, --columns 3