GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver un fichier correspondant à un certain modèle et donner ce nom de fichier comme valeur à une variable dans un script shell ?

Disons que votre fichier suit ce modèle file-1.2.0-SNAPSHOT.txt afin qu'il puisse ressembler à file-1.2.0-SNAPSHOT.txt ou fichier-1.3.0-SNAPSHOT.txt ou fichier-1.5.1-SNAPSHOT.txt etc. alors vous pouvez obtenir les fichiers en utilisant la commande find comme ceci :-

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

Il vous donnera tous les fichiers qui se terminent par SNAPSHOT.txt et ensuite vous pouvez l'utiliser pour faire votre travail.

Point(. ) dans rechercher peut être un répertoire parent qui doit contenir le fichier. Comme comme

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

Je pense que ce que vous essayez de faire est de copier uniquement la dernière version.

#!/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 sélection se fait via l'option -name et l'action se fait via l'option -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. Remplacer les lignes correspondant à un motif par des lignes d'un autre fichier dans l'ordre ?

  2. Script Shell avec fonction et paramètre comme variables ?

  3. Lister tout fichier se terminant par .in et correspondant .out avec le script Shell ?

  4. Rechercher un fichier avec les commandes Rechercher et Localiser sous Linux

  5. Fonction bash pour trouver le plus récent modèle de correspondance de fichier

Chiffrement et déchiffrement de fichiers avec ccrypt

Comment travailler avec File and Shell Provisioner dans Vagrant

Variable dans Bash Script qui conserve sa valeur depuis la dernière exécution

Copier et écraser un fichier dans un script shell

Répertoire de changement de script shell avec variable

Sous Linux, comment créer un fichier avec un nom qui est la date et l'heure actuelles