假设我有一个包含以下字符串的变量(由空格分隔但在回显时看起来像是行):
animal:whale
animal:dog
animal:2_mice
animal:cat
我还有另一个变量,其中包含我要从第一个字符串中删除的动物名称。
让我们说names="cat dog"
如何从第一个字符串中删除包含cat and dog的行?
我已经尝试查找sed和grep方法,但还没有找到任何可用的信息。
我还应该指出表达式需要完全匹配,所以如果第二个变量只包含ca而不是cat,那么cat不应该被删除。
答案 0 :(得分:1)
echo "$variable" | grep -Ev ":($(echo "$names" | sed 's/ /|/g'))$"
答案 1 :(得分:0)
使用grep反向搜索,假设names变量中的值是空格分隔的,每个都有一个单词:
private static void test(List<? extends List<? extends Person>> listOfLists){
for(List<? extends Person> list : listOfLists){