编写unix脚本以增加日期

时间:2018-06-20 14:16:42

标签: shell unix

我试图在其中一个值如下的文件之一中增加年份:

$$END_DATE=01/01/2020
$$END_DATE=01/01/2020

我需要通过使用参数来增加年份。我正在尝试以下操作,但出现错误。有人可以帮我吗?

END_DATE1="$(grep END_DATE ABC.txt)"
echo "${END_DATE1}"
END_DATE=${END_DATE1} +%d/%m/%Y -d "${END_DATE1} +${END_DATE1} year"
echo "${END_DATE1}"|sed 's/\${END_DATE1 }/\${END_DATE}/'

1 个答案:

答案 0 :(得分:0)

怎么样

$ awk -F/ -v OFS=/ '/END_DATE/ {$NF++} 1' file
$$END_DATE=01/01/2021
$$END_DATE=01/01/2021

1是awk习惯用法,用于打印每行。有关更多信息,请参见https://stackoverflow.com/tags/awk/info


您遇到的问题之一是,首先找到所有带有结束日期的行,然后再尝试操作该数据。您会注意到END_DATE1包含多行字符串,而date -d会遇到问题。

此外,请勿使用ALLCAPS变量名,而应保留它们由Shell保留。