Jika semuanya ada dalam satu direktori, Anda dapat melakukan:
for file in *fileprefix*; do
grep 'search string' "$file" | tail -1
done
Jika ini adalah file besar, mungkin perlu mempercepat dengan menggunakan tacuntuk mencetak file dalam urutan terbalik (baris terakhir terlebih dahulu) dan kemudian grep -m1untuk mencocokkan kejadian pertama. Dengan begitu, Anda menghindari harus membaca seluruh file:
for file in *fileprefix*; do
tac file | grep -m1 'search string'
done
Keduanya menganggap tidak ada direktori yang cocok fileprefix. Jika ada, Anda akan mendapatkan kesalahan yang bisa Anda abaikan. Jika itu masalah, periksa hanya file:
for file in *fileprefix*; do
[ -f "$file" ] && tac file | grep -m1 'search string'
done
Jika Anda juga perlu nama file dicetak, tambahkan -Hke setiap grepdoa. Atau, jika Anda greptidak mendukungnya, katakan juga untuk mencari /dev/null. Itu tidak akan mengubah output tetapi karena grepdiberikan beberapa file, itu akan selalu mencetak nama file untuk setiap klik:
for file in *fileprefix*; do
grep 'search string' "$file" /dev/null | tail -1
done