Depende de quão sofisticado você precisa disso. Se tudo que você precisa é mudar o 01
para um 02
, você pode usar algo como
sed -i 's/01/02/' file
ou
perl -i -pe 's/01/02/' file
Ou, para estar no lado seguro, faça isso somente se 01
estiver no final da linha:
sed -i 's/01$/02/' file
perl -i -pe 's/01$/02/' file
Ambas as soluções acima modificarão o arquivo original por causa do -i
flag.
Se você precisar considerar as datas reais e, por exemplo, incrementar 2014-02-28
a 2014-03-01
, será necessário usar uma linguagem de programação completa que possa analisar datas ou brincar com a% comandodate
:
$ while IFS='=' read -r text date; do
echo "$text=$(date -d "$date + 1 day" +%F)";
done < file > new_file
Acima, as linhas de entrada serão divididas em =
, salvando a parte antes de =
como $text
e o restante como $date
. Em seguida, o $date
é alimentado para o comando date
, que pode manipular a data como adicionar um dia e imprimi-lo no formato desejado (nesse caso, o formato é %F
, o que significa Year-Month-Day
). Note que isto assume a data do GNU.
O comando echo
imprime o conteúdo de $text
e, em seguida, a data é incrementada em um dia. Isso falhará se você tiver mais de um =
em qualquer linha do seu arquivo.