pipe sort