Jump to content
fearz7

Copiar ficheiros com uma determinada restrição

Recommended Posts

fearz7

Boa tarde,

Dada uma directoria com os seguintes ficheiros:

ficheiro1.txt

ficheiro2.txt

.

.

.

ficheiron.txt

Como é que eu consigo copiar todos os ficheiros acima de um numero x (Ex:5)?

Melhores cumprimentos.

Share this post


Link to post
Share on other sites
Rui Carlos

Consigo fazer com backreference mas não haverá uma abordagem mais simples?

Qual é o comando que estás a usar?

Com a abordagem que indiquei, o único "problema" será o facto de os números poderem ter mais de um algarismo, mas ainda assim não me parece complicado.

Share this post


Link to post
Share on other sites
fearz7

Estava a pensar numa abordagem tipo isto (não responde à questão ):

$ cat file.txt | awk '{if (($1) >= "183202") print}

"poderem ter mais de um algarismo, mas ainda assim não me parece complicado"

O meu problema esta aqui mesmo como é que eu faço supondo que o valor X= 23 e que quero os ficheiros acima desse numero? Assumindo que as regex não me permitem pesquisa num intervalo não sei como fazer.... pois apenas permitem valores individuais [0-9], tenho que dividir o numero X e construir a regex? Ex: ( [2[3-9] | [3-9][0-9] | [1-9][0-9]+] )

Edited by fearz7

Share this post


Link to post
Share on other sites
Rui Carlos

Para mim a forma mais simples é mesmo usando apenas expressões regulares.

Com o awk, podes usar algo deste género: ls | awk 'match($0, /[0-9]+/) { if (substr( $0, RSTART, RLENGTH )+0 > $N) print $0 }'

A única vantagem que vejo é mesmo o a possibilidade de alterar o número base sem se mexer no comando.

Share this post


Link to post
Share on other sites
fearz7

Mas com o aumentar do numero base terias que estar sempre a mexer na expressão regular certo? Porque não consigo fazer uma genérica que dê para qualquer eventual número.

Share this post


Link to post
Share on other sites
fearz7

Basicamente o problema que tenho para resolver é este e não sei como evitar a cópia repetida de ficheiro e pensei na solução anterior como um possível hipótese de resolver isso.

Untitled.jpg

Share this post


Link to post
Share on other sites
Rui Carlos

Quando falaste em comando, pensei que querias uma linha do terminal. Com scripts efectivamente as expressões regulares não são a melhor opção. Ainda assim, penso que a melhor forma de controlares os repetidos seria com o rsync.

Como é que estás a fazer a cópia entre servidores?

Share this post


Link to post
Share on other sites
fearz7

Através do ssh trocando a chave publica para não ser necessário a utilização de passwords. E depois faço uso do comando scp (secure copy).

Share this post


Link to post
Share on other sites
fearz7

Realmente nem tinha pensado nesse truque, muito bom realmente.

Obrigado pelas dicas e pelo tempo perdido!!!!! Foste 5 estrelas.

Melhores cumprimentos :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.