Jump to content
horta19

Duvida Programação em shell- linux

Recommended Posts

horta19

Boas pessoal, eu queria saber como é que eu em shell consigo guardar o nome de um ficheiro numa variavel e mudar o nome por exemplo:

tenho 3 ficheiros ola23.txt , ola45.txt , ola55.txt

e agora faço num=$(ls ola*)

como é que eu faço para obter só os numeros do nome do ficheiro?

Share this post


Link to post
Share on other sites
rolando2424

Podes usar o grep com a opção -o para extrair o número (o -P serve só para se poder usar o '\d*' que é uma regex do perl).

Por exemplo:

rolando@rolando-desktop:~/teste/bar$ ls
bar  foo  ola23.txt  ola45.txt  ola55.txt
rolando@rolando-desktop:~/teste/bar$ ls ola* | grep -o -P "\d*"
23
45
55

A opção -o do grep explicada pelas man pages:

      -o, --only-matching

              Print  only  the  matched (non-empty) parts of a matching line, with each such part on a separate output

              line.

No entanto, se queres renomear muitos ficheiros de uma só vez na linha de comandos, talvez seja usares um programa próprio para isso.

Eu pessoalmente nunca usei nenhum, mas uma pesquisa rápida nos repositórios revelou estes programas: mrename, gprename e renameutils.

Vê se algum deles serve.


Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente :D

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.