我有一个文件Builder.java
,其中包含以下几行:
public class Builder{
@Override
public void setCallId(long value) {
set4ByteField(value, 48);
setLogtype(1);
setVerify("ABAB");
}
public void setOriginCallId(long value) {
set8ByteField(value, 52);
}
public void setDateTimeYear(int value) {
set2ByteField(value, 60);
}
...
Run Code Online (Sandbox Code Playgroud)
然后我只想将大于 50 的数字替换为数字 + 1,其他所有内容保持原样。结果:
public class Builder{
@Override
public void setCallId(long value) {
set4ByteField(value, 48);
setLogtype(1);
setVerifyflag("ABAB");
}
public void setOriginCallId(long value) {
set8ByteField(value, 53);
}
public void setDateTimeYear(int value) {
set2ByteField(value, 61);
}
....
}
Run Code Online (Sandbox Code Playgroud)
我尽力了,但写的脚本不起作用,例如:
cat Builder.java | awk -F'[,)]' '$2>50 {print $2+1}' …
Run Code Online (Sandbox Code Playgroud)