我有一个属性文件(names collect
{ case element => element("rawname") -> element("stdname")}
toMap
res1: scala.collection.immutable.Map[String,String] = Map(a -> A, b -> B, c -> C)
),内容如下。该值只有一个字母
test.properties
我想用ASCII值更新所有属性值。
key1=D
k1ey=A
key3=B
如何更新属性值,如上所示,并将其保存到bash脚本中的新文件(key1=068
k1ey=065
key3=066
)
答案 0 :(得分:2)
使用此BashFAQ-071 How do I convert an ASCII character to its decimal (or hexadecimal) value and back?作为参考,您可以执行如下所示的巧妙小技巧,将ASCII字符转换为其十进制值。
#!/usr/bin/env bash
while IFS== read -r key value; do
LC_CTYPE=C printf -v decimalValue %03d "'$value"
printf '%s=%s\n' "$key" "$decimalValue"
done < test.properties > final.properties
我们的想法是使用'
预先添加属性值,然后printf
将其转换为与值等效的ASCII,然后使用格式说明符{打印出来} {1}}将其表示为十进制值。
答案 1 :(得分:0)
如果你可以使用perl,那就太简单了
perl -pe 's/=\K./ord$&/e' test.properties > final.properties