How to convert numbers to the first letters of the

2019-06-18 07:24发布

问题:

I have a file with content like

12345

I need to convert this kind of strings like this:

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

So, 12345 should result in abcde. I want to achieve this via the shell (bash). What is the best way to do this?

Thanks.

回答1:

In any shell, you could use:

echo "$string" | tr 0123456789 abcdefghij

Or, in Bash and without a pipe:

tr 0123456789 abcdefghij <<< "$string"

(where the double quotes might not be necessary, but I'd use them to be sure).



回答2:

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


回答3:

With sed's map operator.

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


回答4:

tr 0123456789 abcdefghij < filename


回答5:

There's more than one way to do it:

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


标签: bash shell