我有一个文件,其内容类似
12345
我需要像这样转换这种字符串:
"0"->"a" "1"->"b" ... "9"->"j"
因此,12345应该会产生abcde。我想通过shell(bash)实现这一点。实现这一点的最佳方式是什么?
abcde
cyvaqqii1#
在任何shell中,都可以用途:
echo "$string" | tr 0123456789 abcdefghij
或者,在Bash和没有管道:
tr 0123456789 abcdefghij <<< "$string"
(双引号可能不是必需的,但我会使用它们来确保)。
pkbketx92#
echo 12345 | tr '[0-9]' '[a-j]'
bejyjqdl3#
使用sed的map操作符。
sed 'y/12345/hWa!-/' <<< '2313134'
dsekswqp4#
tr 0123456789 abcdefghij < filename
klr1opcd5#
方法不止一种:
perl -lnaF -e 'print map chr($_+97), @F' file abcdefghij
5q4ezhmt6#
以下是适用于字母表中所有字母的解决方案(with thanks):第一个
6条答案
按热度按时间cyvaqqii1#
在任何shell中,都可以用途:
或者,在Bash和没有管道:
(双引号可能不是必需的,但我会使用它们来确保)。
pkbketx92#
bejyjqdl3#
使用sed的map操作符。
dsekswqp4#
klr1opcd5#
方法不止一种:
5q4ezhmt6#
以下是适用于字母表中所有字母的解决方案(with thanks):
第一个