我的文件包含以下格式。在以下文件中,我想将t=0.00000
替换为t=0.00000+50
,如50.00000,而不更改文件格式。我的文件看起来像:
MODULE for the Modulate t= 0.00000
MODULE for the Modulate t= 4.00000
MODULE overshoot Modulate t= 8.00000
MODULE fail for Modulate t= 12.00000
MODULE successful for the Modulate t= 16.00000
我做了类似这样的事情,但无法增加并且手动花费了很多时间。
sed -i 's/MODULE for the Modulate t= 0.00000/MODULE for the Modulate t=50 /g' file.txt
预期产出:
MODULE for the Modulate t= 50.00000
MODULE for the Modulate t= 54.00000
MODULE overshoot Modulate t= 58.00000
MODULE fail for Modulate t= 62.00000
MODULE successful for the Modulate t= 66.00000
答案 0 :(得分:4)
在Perl单行命令中
final Switch colorsChange= (Switch) findViewById(R.id.switch_colors);
colorsChange.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// Color blind friendly colors here
} else {
// Normal RGB colors here
getResources().getColor(R.color.defaultColors);
}
}
});
perl -pe 's/Modulate\s+t=\K\s*([0-9.]+)/sprintf '%10.5f',$1+50/e' my_file
答案 1 :(得分:2)
使用awk
awk 'NF{$NF=sprintf("%.5f",$NF+50)}1' file
MODULE for the Modulate t= 50.00000
MODULE for the Modulate t= 54.00000
MODULE overshoot Modulate t= 58.00000
MODULE fail for Modulate t= 62.00000
MODULE successful for the Modulate t= 66.00000
答案 2 :(得分:0)
<强>增量强>
awk '/t=[[:blank:]]*0.00000/{gsub(/t=[[:blank:]]*0.00000/, "t= " (Inc+=50) ".00000")}1' YourFile > NewFile
如果第一次出现t = 0需要仍为0,则可以添加BEGIN{Inc=-50}
作为第一个动作
<强>贴花强>
sed '/\(t=[[:blank:]]*\)0\([.]00000\)/ s//\150\2/' YourFile > NewFile