如何将数字转换为字母表的第一个字母?

时间:2011-02-17 15:46:33

标签: bash shell

我有一个包含

等内容的文件
12345

我需要像这样转换这种字符串:

"0"->"a"
"1"->"b"
...
"9"->"j"

因此,12345应该会产生abcde。我想通过shell(bash)实现这一点。这样做的最佳方式是什么?

感谢。

5 个答案:

答案 0 :(得分:14)

在任何shell中,您都可以使用:

echo "$string" | tr 0123456789 abcdefghij

或者,在Bash中没有管道:

tr 0123456789 abcdefghij <<< "$string"

(可能没有必要使用双引号,但我确实使用它们。)

答案 1 :(得分:6)

 echo 12345 | tr '[0-9]' '[a-j]'

答案 2 :(得分:3)

使用sed的地图运算符。

sed 'y/12345/hWa!-/' <<< '2313134'

答案 3 :(得分:2)

tr 0123456789 abcdefghij < filename

答案 4 :(得分:0)

有多种方法可以做到:

perl -lnaF -e 'print map chr($_+97), @F' file
abcdefghij