2015-05-13 12 views
5

Bash, {..., ...} sözdizimini kullanırsanız, tekil birden çok dizgi oluşturabilir. Başhekim kelime genişletme için dize nasıl oluşturulur?

$ echo pgdb{200,10{0,1}} 
pgdb200 pgdb100 pgdb101 

dizeleri listesini almak ve bash kelime genişlemesi yoluyla işleme mutlaka orijinal sırayla (orijinal liste üretecektir üzerine, o (umarım kısa) dize üretmek için herhangi bir yolu var mı

: Burada gibi mi?

  • postgresql
  • mySQL
  • postgres
  • 0: Örneğin, ben, o verilen bu araç/algoritma istiyorum {postgres{ql,},m{iata,ysql}}

    Ben girdi dizeleri temsil etmek tray kullanma hakkında düşündüm ama çıkış dizesini oluşturmak için bu traydan işlemek için nasıl bilemiyorum:

  • miata

(örneğin) üretecektir.

+1

Brace genişletme, yapmanız gereken yazım miktarını azaltmak için interaktif kullanım amaçlıdır. Zaten böyle bir araca besleyebileceğiniz bir form listesinde iseniz, sadece bu listeyi kullanın. Minimal bir brace genişlemesine indirgemek, okunabilirliği acıtıyor. – chepner

+0

Bu, her kelimenin her karakterinin ayrıştırılmasını ve karşılaştırılmasını gerektirir ve önceden belirlenmiş listeyi kullanmaktan çok daha fazla güçlük çeker. –

+0

@chepner Usecase tek bir yerde liste oluşturmak ve onu başka bir yerde kullanmak içindir. Etkileşimli. Her iki yer de farklı güvenlik duvarlarının ve nat'lerin arkasında olduğu için listeyi kolayca çizemiyorum. – someone

cevap

1
+0

Bu ilginç bir yaklaşımdır, ancak maalesef algoritma gerçekten akıllı değildir. Verilen dizeler kümesinin hem ortak ön ekinin hem de ortak son ekinin bulunduğu hassas durumlarda ele alınamaz. – someone

İlgili konular