$ をエスケープしたら記号のドルマークを指定しちゃうんじゃないの?
それに s/$// としても改行が削除されて次の行とくっつくわけじゃないし