2016-03-27 21 views
0

Günlük rutinlerimi saklamak için BASHRC kullanıyorum ve daha fazla zaman harcadı ve artık bir miktar kopya var. SED \ AWK \ grep ile tüm işlevlerin diziye ayrıştırılması ve çoğaltılması için bir yol olup olmadığını merak ediyordum. yinelenen ile bashrc aitBASHRC işlevlerinin ayrıştırma işlevleri

örnek:

function action1(){ 
    /usr/bin/operate $1 
    } 
    function action2(){ 
    /usr/bin/perform $1 $2 
    } 
    function action1(){ 
    /usr/bin/operate $1 
    } 

sayesinde

Roy

+1

Gerçekten çiftler tarafından ne demek istiyorsun? Sadece bu iki işlev aynı ada sahip? Farklı şeyler yapan aynı ada sahip iki işlevden ne haber? Aynı şeyi yapan farklı isimlere sahip iki işlevden ne haber? Aynı şeyi yapan, ama farklı şekillerde olan işlevlere ne dersiniz? Yinelenen işlev adlarını bulmak yeterince kolaydır. Bundan sonra herhangi bir şey biraz iddialı olabilir. – jas

+0

'function' anahtar sözcüğü, bu özel durum için yararlıdır, ancak taşınabilir değildir ve dolayısıyla işe yaramaz. Açık anahtar kelimenin kullanılmadığı durumlarda bile genel bir çözüm çalışması gerekir. – tripleee

cevap

1

o zaman tüm ihtiyaç vardır gibi girdi dosyası göründüğünü GERÇEKTEN buysa:

$ awk '$1=="function"{unq=!seen[$2]++} unq' file 
    function action1(){ 
    /usr/bin/operate $1 
    } 
    function action2(){ 
    /usr/bin/perform $1 $2 
    } 

Eğer daha sonra gerçekten gerçekten örnek bir örnek girişi ve exp sağlamak için sorunuzu düzenlemezseniz çıktı çıktı.

+1

akıllıca hazırlanmış, efendim – user2512450