1
我在使用Korn Shell的UNIX系統上。我是一名UNIX初學者。這是我想做的事:Unix ksh替換變量的倒數第二個字符
var1=user/[email protected]
我想只更換第2至最後一個字母,這將永遠是一個M
如果該事項,並更改爲O
,並和存儲此作爲把它變成一個新的變量。
所以新變量將包含:
var2=user/[email protected]
我在使用Korn Shell的UNIX系統上。我是一名UNIX初學者。這是我想做的事:Unix ksh替換變量的倒數第二個字符
var1=user/[email protected]
我想只更換第2至最後一個字母,這將永遠是一個M
如果該事項,並更改爲O
,並和存儲此作爲把它變成一個新的變量。
所以新變量將包含:
var2=user/[email protected]
與sed
試試這個:在var2
儲運更新var1
sed 's/M\(.$\)/O\1/'
完整的解決方案:
var2=`echo $var1 | sed 's/M\(.$\)/O\1/'`
Ë xplanation:使用sed
替換命令:s/<find>/<replace>/
。它搜索M.$
模式,其中$
是EOL - 因此它將從結尾開始是第二個字符。然後它捕獲M
字符(轉義括號 - 在sed
捕獲組應該轉義)後的剩餘部分,並用O
字符替換M
- 捕獲的內容(它是特殊參考\1
- 捕獲的組1)之後的餘數。
謝謝sooo很多答案,更重要的是,解釋它在做什麼! – John