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

2024-11-13 08:22:14
推荐回答(1个)
回答(1):

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 }'  文件名