Awk não vai facilitar sua vida. Você pode usar a sintaxe de remoção do sufixo: ${x%.*}
é o valor da variável x
com o menor sufixo do formulário .*
removed.
for x in *.txt.*.*; do
mv "$x" "/other/directory/${x%.*}"
done
Eu preciso renomear os arquivos abaixo e passar para outro caminho
1234551abcde20140718023216001.txt.809047512.2014_07_07_13:47:44
000001abcde20140718023216001.txt.34568.001.2014_07_07_13:50:44
44444abcded20140718023216001.txt.1111111.2014_07_07_13:47:44
Resultado esperado
1234551abcde20140718023216001.txt.809047512
000001abcde20140718023216001.txt.34568.001
44444abcded20140718023216001.txt.1111111
apenas preciso remover o timestamp conectado sempre com os nomes dos arquivos e movê-lo para outro diretório no AIX
Para sua referência eu tentei.
#!/usr/bin/ksh
file1='echo 1234551abcde20140718023216001.txt.809047512.2014_07_07_13:47:44 | awk -F "." '{for(i=1;i<NF;i++) if ($i!= 1) f=f?f FS $i:$i;print f;f=""}''
echo $file1
Awk não vai facilitar sua vida. Você pode usar a sintaxe de remoção do sufixo: ${x%.*}
é o valor da variável x
com o menor sufixo do formulário .*
removed.
for x in *.txt.*.*; do
mv "$x" "/other/directory/${x%.*}"
done