String Bash-从输出中的集合中删除重复字符
情景1: 我有一个包含此字符串的变量:String Bash-从输出中的集合中删除重复字符,string,bash,shell,sed,duplicate-removal,String,Bash,Shell,Sed,Duplicate Removal,情景1: 我有一个包含此字符串的变量: output="abdh748mdn78##j*&#" 特殊字符属于一个称为特殊字符集的集合 specialchars='@#$%&*+-=' 圣诞节我只想 1) 保留一块特殊的炭,丢弃其余的 2) 从字符串中多次删除该字符,或者选择一个特殊字符并丢弃其余字符 情景2: output="a#bdh#748m#" Speicalchar="$char" [where $char is '#' random
output="abdh748mdn78##j*&#"
特殊字符属于一个称为特殊字符集的集合
specialchars='@#$%&*+-='
圣诞节我只想
1) 保留一块特殊的炭,丢弃其余的
2) 从字符串中多次删除该字符,或者选择一个特殊字符并丢弃其余字符
情景2:
output="a#bdh#748m#"
Speicalchar="$char" [where $char is '#' randomly selected from set- look above]
注意有多个#
只需要去掉复制品并保留一个。
然后返回$output
我试过:
echo $stringout | sed 's/\([@#$%&*+-=]\)\1/\1/g'
在stackx上找到的,但不起作用
需要保持bash(只能使用bash utils)。您的输入和预期输出是什么?预期输入-场景2:a#bdh#748m#输出-a#bdh748m。对于场景1,输入abdh748mdn78#j*输出-abdh748mdn78#j。为什么不能将
*
和&
保留在第二个字段中。因为它们属于特殊字符集[@$%&*+-=]。规格是只显示集合中的一个字符,并且没有重复。可能的重复