- 論壇徽章:
- 0
|
我在寫一個shell程序,要求進(jìn)行一個簡單的字符串變換功能,就是把一個字母變成字母表中它后面的第十三個字母,如果碰到末尾就折到頭開始。就是a->n, b->o, A->N, n->a, o->b這樣的。我已經(jīng)琢磨了很久了,仍然不得要領(lǐng)。
首先,我想應(yīng)該把一個字符串拆成單個的字符,然后才好做字符的轉(zhuǎn)換?墒俏也恢烙檬裁捶椒ǹ梢宰龅竭@一點,用C什么的當(dāng)然很好做,但是現(xiàn)在是shell,就有些不知所措了。
然后,要根據(jù)每個字符的ASCII碼進(jìn)行運算,加13再取模之類的,這個運算很簡單,但是問題是我怎么才能在shell里得到一個字符的ASCII碼呢?
再者,轉(zhuǎn)換得到的ASCII碼需要顯示成對應(yīng)的字符,我知道可以用echo "\0xx"這樣的形式輸出字符,但是這個數(shù)字是八進(jìn)制的,而上一步運算應(yīng)該是十進(jìn)制的,怎么在shell中做進(jìn)制轉(zhuǎn)換呢?
我研究了grep, awk, sed等,好像都不是很靈光。是不是有什么其他的Unix命令可以用呢?不過不可以自己寫個C程序什么之類的,要用基本的unix命令寫的shell完成這個工作。
請各位多多幫助,在線等待中.......... |
|