0
sapces değiştirmeye çalışırken veboşlukları ve parantezleri bir dizgede değiştirir + sed + bundan daha iyi bir yol var mı?
this is just a (test)
içinde altını ben aşağıdakileri yapın:
echo "this is just a (test)" | sed -e 's/ /_/g' | sed -e 's/(//g' | sed -e 's/)//g'
Ve bu bana verir:
this_is_just_a_test
daha iyi bir yolu var mı? Sed'de yazmanın daha kısa yolu?
En azından "-e" ifadelerini tek bir "sed" çağrısında birleştirebilirsiniz: sed -e 's// _/g' -e '/ (// g' -e 's /) // g '' veya daha kısa: 'sed -e// _/g '-e'/[()] // g '. Karakterleri yerine 'tr 'ile değiştirebilirsiniz. 'tr', belirli karakterleri kesmek için de (ikinci bir çağrıda) kullanılabilir. Ama bütün bunların hepsi çok yardımcı olmaz, ben de (tek) 'sed' çağrısına sadık kalırdım. – Alfe
Birden çok "sed" komutunu bir ';' kullanarak zincirleyebilirsiniz. Yani belki de 'sed'// _/g; s/[()] // g 'noktanın daha fazlasıdır. – jeberle