替换引号中的内容
$ awk '{ gsub(/"[^"]*"/, "\"NEW TEXT HERE\""); print }' baseframework/BuildInfo.cs
#!/usr/bin/awk -f
# 获取当前时间
"date +%Y%m%d%H%M%S" | getline now
# 读入文件
{
# 替换引号中间的内容为当前时间
gsub(/"([^"]+)"/, "\""now"\"", $0)
# 输出结果
print $0
}
awk -f script.awk inputfile > outputfile
另外的写法
public class BuildTimeInfo
{
public const String BUILD_TIME = "xxx";//time replace
}
sed 's/\".*\"/REPLACEMENT/' baseframework/BuildInfo.cs
替换为
public class BuildTimeInfo
{
public const String BUILD_TIME = REPLACEMENT;//time replace
}
关于写入时间的问题踩坑
对于时间字符串,似乎不能用这套写法,因为我发现替换之后那些字符串乱摆放位置.
最后我定义一个txt
public class BuildTimeInfo
{
AA
}
然后脚本文件为
strTime="public const String BUILD_TIME=\"$(date +"%Y%m%d%H%M%S")\"\;"
sed "s/AA/${strTime}/g" buildTime.txt
格式化
strTime="public const String BUILD_TIME=\"$(date +"%Y-%m-%d %H:%M:%S")\"\;"
sed "s/AA/${strTime}/g" buildTime.txt
另外一个脚本 或者linux执行如下命令
./write_build_time.sh>baseframework/BuildInfo.cs
这将覆盖源码
![](https://img.haomeiwen.com/i2815884/2470a1486aa5d267.png)
一个是命令编译一种是vs直接运行,如果直接运行,则配置如下命令
![](https://img.haomeiwen.com/i2815884/9d290e2518ef1864.png)
call bash write_build_time.sh>baseframework/BuildInfo.cs
网友评论