GNU/Linux >> Belajar Linux >  >> Linux

Dapatkan Semua Kemungkinan Kombinasi Kata Dalam Huruf Kecil/Kapital?

Saya ingin menulis skrip bash untuk mencetak semua kemungkinan permutasi huruf kecil dan besar dari kata tertentu, mis. harley:

harley
harleY
harlEy
harLey
...
HARLey
HARLEy
HARLEY

Solusi naif saya adalah menulis n-th (n is len(word)) for-loop bersarang untuk kata khusus ini:

#!/bin/bash
for a in {h,H}; do
    for b in {a,A}; do
    ...
    done
done

Namun, saya harus mengkodekan skrip untuk kata yang berbeda lagi.

Apakah ada cara yang lebih baik untuk mencapai ini?

Jawaban yang Diterima:

Solusi yang sedikit lebih baik:

echo {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y}

Untuk skalabilitas penuh:

echo harley \
| perl -nle 'print "echo ",
                    join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c "{}"

Jika Anda benar-benar harus memiliki satu kata per baris, gunakan

for w in {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y};do echo $w;done

terima kasih atas komentar mattdm

Versi terukur yang sesuai adalah:

echo harley \
| perl -nle 'print join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c 'for w in {};do echo $w;done'

Untuk bersenang-senang, coba ganti "harley" dengan "supercalifragilisticexpialidocious" Sudah 5 menit dan komputer saya masih bekerja dengan yang ini dan mungkin tidak akan pernah selesai


Linux
  1. Apakah mungkin menginstal semua paket dari repositori APT?

  2. Dapatkan Ukuran Semua Folder di Direktori

  3. Dapatkan daftar sederhana semua disk

  1. Konversi Semua Teks Dari Huruf Besar Ke Huruf Kecil Dan Sebaliknya?

  2. Dapatkan Semua File Tapi File Dalam Array – Bash?

  3. 3 trik untuk mendapatkan beberapa perintah output di baris yang sama

  1. Linux:Bagaimana Mendapatkan Semua Log Masuk Dari Sistem?

  2. Bagaimana mengubah semua kemunculan kata di semua file dalam direktori

  3. Dapatkan 4 karakter keluaran terakhir dari keluaran standar