我有一点问题.我想在使用拆分运算符找到的每个管道字符处拆分一条线.就像在这个例子中.
echo "000001d17757274585d28f3e405e75ed|||||||||||1||||||||||||||||||||||||" | \
perl -ane '$data = $_ ; chop $data ; @d = split(/\|/ , $data) ; print $#d+1,"\n" ;'
Run Code Online (Sandbox Code Playgroud)
我希望36的输出awk与分隔符|返回36 分开,但是我得到12,好像分裂停1在了行中的字符处.
echo "000001d17757274585d28f3e405e75ed|||||||||||1|||||||||||||||||||||||||||||||||||||||" | \
awk -F"|" '{print NF}'
Run Code Online (Sandbox Code Playgroud)
任何的想法.我尝试过多种方式引用|,但没有成功.非常感谢提前.
Mat*_*Mat 16
根据split:
默认情况下,将保留空的前导字段,并删除空的尾随字段.
您需要为拆分指定负限制以获得尾随的限制:
split(/\|/, $data, -1)
Run Code Online (Sandbox Code Playgroud)