GNU/Linux >> Belajar Linux >  >> Linux

Temukan file yang cocok dengan pola tertentu dan berikan nama file itu sebagai nilai ke variabel dalam skrip shell?

Katakanlah file Anda mengikuti pola ini file-1.2.0-SNAPSHOT.txt jadi bisa seperti file-1.2.0-SNAPSHOT.txt atau file-1.3.0-SNAPSHOT.txt atau file-1.5.1-SNAPSHOT.txt dll. maka Anda bisa mendapatkan file menggunakan perintah find seperti ini :-

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

Ini akan memberi Anda semua file yang diakhiri dengan SNAPSHOT.txt lalu Anda dapat menggunakannya untuk melakukan pekerjaan Anda.

Titik(. ) di temukan bisa menjadi direktori induk yang harus berisi file. Seperti

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

Saya pikir apa yang Anda coba lakukan adalah hanya menyalin versi terakhir.

#!/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"

pemilihan terjadi melalui opsi -name dan tindakan dilakukan melalui opsi -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. Ganti Garis yang Mencocokkan Pola Dengan Garis Dari File Lain Secara Berurutan?

  2. Script Shell Dengan Fungsi Dan Parameter Sebagai Variabel?

  3. Daftar File Apa Saja Berakhir Dengan .in Dan Sesuai Dengan .out Dengan Skrip Shell?

  1. Fungsi Bash untuk menemukan pola pencocokan file terbaru

  2. Variabel dalam Bash Script yang mempertahankan nilainya sejak terakhir kali dijalankan

  3. Salin dan timpa file dalam skrip shell

  1. Direktori perubahan skrip Shell dengan variabel

  2. Di Linux cara membuat file dengan nama tanggal dan waktu saat ini

  3. Membuat template dengan Linux dalam Shell Script?