SHELL脚本对LINUX下指定文本文件的满足条件的行的特定位置字符串进行替换

帮忙写个SHELL,按下面步骤获取当前系统日期-1,存入变量YDAY,格式YYYYMMDD获取当前系统日期,存入变量TDAY,格式YYYYMMDD查找文件首行第20到27... 帮忙写个SHELL,按下面步骤

获取当前 系统日期-1 ,存入 变量YDAY ,格式 YYYYMMDD
获取当前 系统日期 ,存入 变量TDAY ,格式 YYYYMMDD
查找文件 首行 第20到27个字符 的内容等于 变量YDAY 的,替换成 变量TDAY
查找文件 首行 第34到41个字符 的内容等于 变量YDAY 的,替换成 变量TDAY
查找文件中,行首为TH的行,查找第21到28个字符的内容等于 变量YDAY的,替换成 变量TDAY
其他位置有字符串等于YDAY的不能被修改
展开
 我来答
albumin
2018-04-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2393万
展开全部
YDAY=$(date +"%Y%m%d" -d "-1 days")
TDAY=$(date +"%Y%m%d")
awk  -v YDAY=$YDAY  -v TDAY=$TDAY '
NR==1 {
if(substr($0,20,8)==YDAY)
    $0=substr($0,1,19) TDAY substr($0,28)
if(substr($0,34,8)==YDAY)
    $0=substr($0,1,33) TDAY substr($0,42)
}
/^TH/{
if(substr($0,21,8)==YDAY)
    $0=substr($0,1,20) TDAY substr($0,29)
}
{print }'  文件名
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式