GNU/Linux >> Linux Esercitazione >  >> Linux

Trova un file corrispondente a un determinato modello e assegna quel nome di file come valore a una variabile nello script di shell?

Supponiamo che il tuo file segua questo modello file-1.2.0-SNAPSHOT.txt quindi può essere come file-1.2.0-SNAPSHOT.txt o file-1.3.0-SNAPSHOT.txt o file-1.5.1-SNAPSHOT.txt ecc. allora puoi ottenere i file usando il comando find come questo :-

find . -type f -iname "*SNAPSHOT.txt" 

Ti darà tutti i file che terminano con SNAPSHOT.txt e poi puoi usarlo per fare il tuo lavoro.

Punto(. ) in trova può essere una directory padre che dovrebbe contenere il file. Come

find ~/my_files/ -type f -iname "*SNAPSHOT.txt" 

Penso che quello che stai cercando di fare sia copiare solo l'ultima versione.

#!/bin/bash
oldlocation="/file_path/"
newlocation="/new_path/"

cd "$oldlocation"

#Get the last version
file="$(ls  *SNAPSHOT.txt | sort -V | tail -n1)"

cp -v "$file" "$newlocation" 
echo "Everything is ok"

la selezione avviene tramite l'opzione -name e l'azione tramite l'opzione -exec.

find . -type f -name '*-[0-9].[0-9].[0-9]-SNAPSHOT.txt' -exec sh -c '
  file=$1
  # do what you want with $file as many times as you want
' {} {} \;

Linux
  1. Funzione Bash per trovare il modello di corrispondenza dei file più recente

  2. Trova e sostituisci nello scripting della shell

  3. Come rimuovere le cartelle con un certo nome

  4. Copia e sovrascrivi un file nello script della shell

  5. Inserisci più righe in un file dopo il modello specificato utilizzando lo script della shell

Crittografia e decrittografia dei file con ccrypt

Come lavorare con File e Shell Provisioner in Vagrant

Trova un file con i comandi Trova e individua in Linux

Variabile in Bash Script che mantiene il valore dall'ultima esecuzione

Directory di modifica dello script Shell con variabile

In Linux come creare un file con un nome che sia la data e l'ora correnti