我有一个像这样组织的文本文件:
发出哔哔声(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,但我觉得那里的答案不符合我的需要。非常感谢任何和所有帮助解决方案。
答案 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
两个版本都经过测试。