如果我有這樣的字符串:保留尾部字符使用時SED更換可變數據
p1 and p11 are going to visit p111. p1 is the father of p111
我怎麼能使用SED(或什麼的,真的)用不同的替換p {N}的每個實例值?這樣的結果會是這樣的:
Bob and Jane are going to visit Paul. Bob is the father of Paul
基本上,我正在尋找一種方式來告訴SED,「中準確找到p {N}之後比其他一些東西,並用$ VAR更換,但不要替換{n}後面的內容。「
如果我做一些簡單的像
text="p1 and p11 are going to visit p111. p1 is the father of p111"
text=`echo "$text" | sed s/p1/Bob/g`
我最終取代「P1」隨着每一次出現「鮑勃」,沒有後續的替代可以發生:
Bob和Bob1打算拜訪Bob11。 Bob是Bob11
的父親我來最接近的是一樣的東西
text=`echo "$text" | sed 's/p1[^0-9]/bob/g'`
這有兩個問題:它消耗的尾隨字符(空格,標點),並且它不匹配p {在一行的結尾處。通過需要更換所有循環後:
Boband Janeare要去拜訪保羅博維斯P111
任何人的父親有一個想法,我怎麼能找到我所需要更換,而不是插入其它變量,不消耗尾隨的非數字字符?
謝謝。
爲什麼不先替換'p111',然後'p11',然後'p1'? – Shahbaz