O problema é esta parte:
xargs -I common printf "%s%s\n" common "*.log"
O *.log
é inserido no modelo como é . Eu não entendo porque você coloca o "*" lá. Isso resolveria isso:
xargs -I common printf "%s%s\n" common .log
No entanto, o último comando tar
não funcionará,
porque o comando tar cvzf hello.tgz fg
será executado para cada arquivo,
e, portanto, você acabará com um tar com um único arquivo (o último).
Acredito que isso deve estar mais próximo do que você deseja:
find . -type f -name '*.log' | cut -c3-12 | uniq | xargs -I{} sh -c 'tar zcvf {}.tgz {}*.log'
Se você tiver arquivos como:
2014-07-01.1.log
2014-07-01.2.log
2014-07-02.1.log
2014-07-02.5.log
2014-07-02.6.log
Em seguida, o comando colocará os dois primeiros em 2014-07-01.tgz
e os três últimos em 2014-07-02.tgz
.