如何在bash中删除字符串中间的字符


12

在bash中,我有一个字符串,并且试图删除字符串中间的字符。我知道我们可以像这样从字符串的开头或结尾删除字符:

myVar='YES'
myVar="${myVar#'Y'}"
myVar="${myVar%'S'}"

但是如何删除中间的那个呢?

Answers:


18

如果您知道要删除的字符,则可以在参数扩展中使用替换:

myVar=${myVar/E}  # Replace E with nothing

或者,如果您知道保留哪些字符:

myVar=${myVar/[^YS]}  # Replace anything but Y or S

或者,如果您知道职位:

myVar=${myVar:0:1}${myVar:2:1}  # The first and third characters

如果您也不知道怎么办?如果您只知道要保留Y和S怎么办?
罗格(Rutger Huijsmans)2016年

@RutgerHuijsmans:检查更新。
choroba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.