给定另一个约束,如何在Windows 7上的文本文件中乘以所有整数?

时间:2014-02-21 02:09:40

标签: windows algorithm math specifications

我有一个像这样组织的文本文件:

发出哔哔声(E1,128);

发出哔哔声(D2,137);

发出哔哔声(F0,36);

哔(E2,36);

发出哔哔声(E2,41);

。 。

我需要将每行中的 second 整数乘以给定的常量,第一个整数不变,输出为整数(可以是下一个,下一个或最接近的乘以回答;没关系多少)。没有时间第一个整数超过10或第二个超过10,如果有帮助的话。这是一个给出乘数为.5的示例输出:

发出哔哔声(E1,64);

发出哔哔声(D2,69);

发出哔哔声(F0,18);

发出哔哔声(E2,18);

哔(E2,21);

。 。

我意识到这与这个问题相似:Awk to multiply all numbers in a text file by a constant subject to another constraint,但我觉得那里的答案不符合我的需要。非常感谢任何和所有帮助解决方案。

1 个答案:

答案 0 :(得分:1)

在阅读了你的问题并关注你的链接后,我决定学习awk。我相信这会解决你的问题。 'p'用作常量。

Linux的:

awk '{if(length($0)>0){p=0.5;print $1,int(substr($2,0,length($2)-1)*p)");"}}' filename

视窗:

awk "{if(length($0)>0){p=0.5;print $1,int(substr($2,0,length($2)-1)*p)\");\"}}" filename

两个版本都经过测试。