.txtデータファイルに定数を掛ける方法は?


9

1列の.txtファイルがあります。約8000の数字です。このデータ列に1000000を乗算するにはどうすればよいですか?


3
数値が厳密に整数の場合、sed 's/$/000000/' file.txt
グレン・ジャックマン

6
@glennjackman:それは答えのように見えます。:-]
デビッド・フォースター

数値が整数でない場合はどうなりますか?
Copper.hat

回答:


24

awk次のコマンドを使用できます。

awk '{print $1*1000000}' file.txt

16

ファイル内の数値が整数または単純な浮動小数点値である場合は、numfmtユーティリティを使用し--from-unit=て目的のスケーリングを示すことができます。

例 与えられた

$ cat file
1.23
5
3.45
17
6.78
23

その後

$ numfmt --from-unit=100000 < file
123000.00
500000
345000.00
1700000
678000.00
2300000

さまざまな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

または、sedおよびbc

sed 's/$/ * 100000/' file | bc

または(リバースポリッシュバリアント)

sed 's/$/ 100000 * p/' file | dc

それがあるべきbc最後のコマンドまたはあるdc何かが他の?
PerlDuck

3
@PerlDuck dcは別のものです-たとえば、BCはDCとどう違うのですか?
スチールドライバー

LOL、私は十分に注意深く読んでおらず、光沢のあるもの作るよう磨きかけることを考えていました。説明するTy。
PerlDuck

3
ハは、いわゆる「逆ポーランドは」「何かにすることですあまり光沢のある(より多くの泥を)」?IMO、DCはその要件を満たしています
Glenn Jackman

このリンクを参照してください。Wikipedia:逆ポーランド記法 -これは、世界初のハンドヘルド関数電卓であるHP-35と次の一連の電卓で1970年代に人気を博しました。
sudodus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.