Sed bir zorunluluk değilse Ruby kullanmak bir alternatif olabilir. Ruby yorumlayıcısı, girişi üzerinden yineleme yapan seçenekle rubyçalıştırarak sed ve awk gibi kullanılabilir -n. Daha sonra yorumlayıcı, bir -eseçeneğe argüman olarak ekleyerek Ruby bir astarla beslenebilir (bu, yorumlayıcıya -ebir dosyada komut dosyası aramak yerine argümanını yorumlamasını söyler ).
Bu özel sorun için aşağıdaki tek astarı kullanabilirsiniz ( https://stackoverflow.com/a/3184271/789593 adresinden uyarlanmıştır ):
ruby -ne 'puts $_.scan(/.{3}|.+/).join("+")'
Düz dilde
scan(/.{3}|.+/)giriş dizesinde 3 karakterle veya en az bir karakterle eşleşir $_(bu durumda girişin standart girişten gelmesi beklenir) ve her eşleşmeyi bir diziye koyar,
- diziyi her bir öğeyi bağlayan '+' ile bir dizeye ekler
join("+"),
- ve bir satırsonu tarafından sonlandırıldığını yazdırır
puts.
Örneğin
echo "AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUG" | ruby -ne 'puts $_.scan(/.{3}|.+/).join("+")'
AUG+GCC+AUG+GCG+CCC+AGA+ACU+GAG+AUC+AAU+AGU+ACC+CGU+AUU+AAC+GGG+UG
Herhangi bir sondaki '+' eklemediğini unutmayın.