2014-10-19 68 views
0

我在文本文件中重复以下行。任何人都可以帮助我将五列项从二进制转换为十进制。我想编辑现有文件而不创建新文件。将特定列从二进制转换为十进制的shell脚本

-117.894687  33.663901 0.000000 0,0,0 1010000000000000000000000000000000  1637.10  238.88  1719.04 
+0

你看了[这里](http://unix.stackexchange.com/questions/65280/binary-to-hexadecimal-and-decimal-in-a-shell-script)? – dramzy 2014-10-19 15:28:45

+0

当您编辑现有文件时,您将始终创建一个新文件。如果你在文本编辑器中这样做,新文件将在'/ tmp /'中创建,并且当你将最终文件写回到磁盘时,旧文件将被删除。另外,请考虑您提议的尺寸变化。你可以用312(或其他)后面的空格替换“1010000”,或者在替换结尾放置一个换行符,这将缩短文件的长度。祝你好运。 – shellter 2014-10-19 16:53:07

回答

0
#!/bin/bash 
bin=1010000000000000000000000000000000 

echo "The decimal value of $bin is $((2#$bin))" 

现在,为了打破上面的字符串,并将其发送到这个文件,你必须使用cut命令和使用chmod +x binconv.sh

然后发送剪切命令上面的shell脚本执行通过命令行,并根据它

bash binconv.sh 1010000000000000000000000000000000

修饰的改变上述脚本y bin=1010000000000000000000000000000000bin=$1