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

a6b3iqyw  于 2022-11-16  发布在  Shell
关注(0)|答案(6)|浏览(169)

我有一个文件,其内容类似

12345

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

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

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

cyvaqqii

cyvaqqii1#

在任何shell中,都可以用途:

echo "$string" | tr 0123456789 abcdefghij

或者,在Bash和没有管道:

tr 0123456789 abcdefghij <<< "$string"

(双引号可能不是必需的,但我会使用它们来确保)。

pkbketx9

pkbketx92#

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

bejyjqdl3#

使用sed的map操作符。

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

dsekswqp4#

tr 0123456789 abcdefghij < filename
klr1opcd

klr1opcd5#

方法不止一种:

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

5q4ezhmt6#

以下是适用于字母表中所有字母的解决方案(with thanks):
第一个

相关问题