删除 bash 变量中出现的所有单词
removing all word occurence in a bash variable
我有一个这样的变量:(每个单词换行)
> echo $LIST
toto
toto2
titi
rererer
dfs
sdfsdf
titi
titi
我尝试删除所有出现的 "titi" 以获得:
> echo $LIST
toto
toto2
rererer
dfs
sdfsdf
我尝试使用 LIST=$(echo ${LIST//titi/}) 并且它删除了它但它也删除了新行并给出了这个结果:
> echo $LIST
toto toto2 rererer dfs sdfsdf
我的问题是如何删除所有出现的情况,使每个单词保持在一行中?
提前致谢:)
需要在"${LIST//titi/}"
两边加上引号,否则空格会被折叠:
$ LIST='toto
> toto2
> titi
> rererer
> dfs
> sdfsdf
> titi
> titi'
$ echo "${LIST//titi/}"
toto
toto2
rererer
dfs
sdfsdf
但你也可以直接赋值:
LIST=${LIST//titi/}
echo "$LIST" # quotes are important here!
我有一个这样的变量:(每个单词换行)
> echo $LIST
toto
toto2
titi
rererer
dfs
sdfsdf
titi
titi
我尝试删除所有出现的 "titi" 以获得:
> echo $LIST
toto
toto2
rererer
dfs
sdfsdf
我尝试使用 LIST=$(echo ${LIST//titi/}) 并且它删除了它但它也删除了新行并给出了这个结果:
> echo $LIST
toto toto2 rererer dfs sdfsdf
我的问题是如何删除所有出现的情况,使每个单词保持在一行中? 提前致谢:)
需要在"${LIST//titi/}"
两边加上引号,否则空格会被折叠:
$ LIST='toto > toto2 > titi > rererer > dfs > sdfsdf > titi > titi' $ echo "${LIST//titi/}" toto toto2 rererer dfs sdfsdf
但你也可以直接赋值:
LIST=${LIST//titi/}
echo "$LIST" # quotes are important here!