mam ciąg jakWymiana niektórych znaków w ciąg z innym charakterem
AxxBCyyyDEFzzLMN
Chcę wymienić wszystkie x
i y
i z
z _
tak, że wyjście jest
A_BC_DEF_LMN
Jak Zrób to?
wiem serię
echo "$string" | tr 'x' '_' | tr 'y' '_'
będzie pracować, ale chcę to zrobić za jednym razem, bez użycia przewodów.
EDIT: Następujące pracował
echo "$string" | tr '[xyz]' '_'
Czy chcesz zastąpić sekwencję kolejnych x, y lub z za pomocą _one_ podkreślnika, czy też chcesz zastąpić _each_ x, y lub z jednym podkreśleniem? Co powiesz na mieszane sekwencje, takie jak 'AxyzB'? Trzy podkreślenia lub jeden? –
'tr '[xyz]'' również zastąpi '[' i ']'. Argument powinien być po prostu listą znaków (chociaż zakresy takie jak "a-z" są w porządku, aw niektórych implementacjach klasy znaków POSIX, takie jak '[: cyfra:]'). – tripleee