如何将 .txt 数据文件乘以一个常数?

O.E*_*O.E 9 command-line text-processing

我有一个包含一列的 .txt 文件。它是大约8000个数字。如何将这列数据乘以 1000000?

N0r*_*ert 24

您可以使用awk命令:

awk '{print $1*1000000}' file.txt
Run Code Online (Sandbox Code Playgroud)


ste*_*ver 17

如果文件中的数字是整数或简单的浮点值,您可以使用该numfmt实用程序--from-unit=来指示所需的缩放比例。

前任。给予

$ cat file
1.23
5
3.45
17
6.78
23
Run Code Online (Sandbox Code Playgroud)

然后

$ numfmt --from-unit=100000 < file
123000.00
500000
345000.00
1700000
678000.00
2300000
Run Code Online (Sandbox Code Playgroud)

您可以printf向输出添加各种样式格式,例如

$ numfmt --from-unit=100000  --format="%'12.2f" < file
  123,000.00
  500,000.00
  345,000.00
1,700,000.00
  678,000.00
2,300,000.00
Run Code Online (Sandbox Code Playgroud)

或者,使用sedbc

sed 's/$/ * 100000/' file | bc
Run Code Online (Sandbox Code Playgroud)

或(反向抛光变体)

sed 's/$/ 100000 * p/' file | dc
Run Code Online (Sandbox Code Playgroud)

  • @PerlDuck `dc` 是另一回事 - 例如参见 [​​bc 与 dc 有何不同?](https://unix.stackexchange.com/questions/124518/how-is-bc-different-from-dc) (3认同)
  • 哈,所以“反向抛光”是“让一些东西*少*闪亮(更浑浊)”?IMO,dc 满足该要求 (3认同)