Give-Command im Villager? Verzeih aber ich glaub der Vorschlag ist Blödsinn. Du kannst im Summon-Command für Villager kein give einbauen. In tellraw geht sowas, aber nicht in summon. Außerdem - was willst du mit give? Es müsste wenn clear sein um Items vom Spieler zu nehmen.
Mit diesem Generator kannst du solche Commands gut zusammenbauen:
http://mcstacker.bimbimma.com/
Das hier wäre der theoretische Command:
/summon Villager ~ ~1 ~ {Profession:0,Offers:{Recipes:[{maxUses:100,uses:0,buy:{id:diamond_sword,Count:1,tag:{ench:[{id:16,lvl:4},{id:20,lvl:2}]}},sell:{id:emerald,Count:20}}]}}
Das Problem daran ist nun, das Verzauberung nicht gleich Verzauberung ist. Ein Protection II Buch ist zum Beispiel nicht das gleiche wie ein Protection II-Buch das aus zwei Protection I-Büchern zusammengesetzt wurde. Wie du dieses Problem bei Villagern lösen kannst weiß ich leider nicht. Ich weiß es gibt einen Mod mit dem du sowas leicht einstellen kannst, vielleicht ist der dann bei der Itemabgabe "toleranter"