The 22-year-old, who hit a brilliant one-day hundred against arch-rivals India in the Asia Cup in Dhaka two months ago, injured his finger during a club match, the Pakistan Cricket Board (PCB) said.
Jamshed, only named in the one-day squad for Sri Lanka, has been advised to take four to six weeks' rest by the medical team and the PCB said a decision on a replacement will be announced in due course.
Pakistan will play two Twenty20s, five one-day internationals and three Tests on their tour of Sri Lanka starting early next month.
Pakistan announced separate squads for all three formats last week, with Mohammad Hafeez taking over as Twenty20 captain for the first time.
Misbah-ul Haq, who also lost his Twenty20 place, will lead the team in one-dayers and Tests.