我已经以十六进制格式输出了转换矩阵,但是我希望转换矩阵采用十进制/浮点格式。我使用以下bash脚本将矩阵文件转换为十进制格式。
您能告诉我如何将输出写入文件吗?
文件输入包含十六进制格式,并且还返回存储十进制格式的新文件。
这是我的代码:
#!/bin/bash
# Read from specified file, or from standard input
infile="${1:-/dev/stdin}"
outfile="${2:-/dev/stdout}"
while read line; do
for number in $line; do
a_dec="%f" "$number"
echo $a_dec >> $outfile
done
echo
done < $infile
这是我的文件
0x1.fd654929143fep-1 0x1.c0657a12b37a5p-10 0x1.9666c3b501586p-9 -0x1.6aaea8d2a1c96p-3
-0x1.0c1c057bd3763p-9 0x1.fc236c525c005p-1 0x1.2d69948435847p-7 0x1.47fa54408c064p-2
-0x1.62f5b481dcd5p-9 -0x1.5d517ef6316c2p-7 0x1.01c0feebae85bp+0 0x1.04557b01aefa8p+0
0x0p+0 0x0p+0 0x0p+0 0x1p+0
答案 0 :(得分:2)
假设number
始终是一个数字(因此您无需对其进行验证),则只需将a_dec=
分配修改为使用printf
。另外,由于printf
可以接受多个参数,因此可以省略内部循环:
#!/bin/bash
# Read from specified file, or from standard input
infile="${1:-/dev/stdin}"
outfile="${2:-/dev/stdout}"
while read line; do
printf "%f " $line
echo
# echo $(printf "%f\n" $line) # or this to elide the trailing space
done <"$infile" >"$outfile"