Mám malý problém. Chcem rozdeliť riadok na každý znak potrubia nájdený pomocou operátora rozdelenia. Ako v tomto príklade.
echo "000001d17757274585d28f3e405e75ed|||||||||||1||||||||||||||||||||||||" |
perl -ane "$data = $_ ; chop $data ; @d = split(/|/ , $data) ; print $#d+1,"n" ;"
Očakával by som výstup 36 ako awk
štiepenie oddeľovačom |
návrat 36, ale namiesto toho dostanem 12, akoby sa rozdelenie zastavilo na 1
znak v riadku.
echo "000001d17757274585d28f3e405e75ed|||||||||||1|||||||||||||||||||||||||||||||||||||||" |
awk -F"|" "{print NF}"
Nejaký nápad. Vyskúšal som mnoho spôsobov citovania |
, ale bez úspechu. Ďakujem vopred.
odpovede:
16 pre odpoveď č. 1Podľa split
:
Štandardne sa zachovajú prázdne úvodné polia a prázdne koncové sú odstránené.
Musíte zadať záporný limit rozdelenia, aby ste dosiahli koncové hodnoty:
split(/|/, $data, -1)