sed 删除匹配包含斜杠的变量值的字符串
sed delete string matching a variable value containing slashes
我正在尝试使用 sed 来清理列表。 $salvation 中出现的任何行都应从已设置的 $naughtyList 中删除。
我有;
$ echo "$naughtyList"
ONE/1/one
TWO/2/two
THREE/3/three
FOUR/4/four
FIVE/5/five
和;
$ echo "$salvation"
TWO/2/two
FOUR/4/four
问题出在斜杠字符上。我在尝试时无法逃脱它们;
for line in $(echo $salvation); do
naughtyList=$(echo $naughtyList | sed "/$line/d")
done
sed: -e expression #1, char 6: unknown command: `2'
sed: -e expression #1, char 7: unknown command: `4'
有没有办法传递$line,或者我必须修改输入模式?
提前致谢。
最好在这里使用 grep -f
进程替换:
grep -vFf <(echo "$salvation") <(echo "$naughtyList")
ONE/1/one
THREE/3/three
FIVE/5/five
要更新 naughtyList
变量,请使用:
naughtyList=$(grep -vFf <(echo "$salvation") <(echo "$naughtyList"))
我正在尝试使用 sed 来清理列表。 $salvation 中出现的任何行都应从已设置的 $naughtyList 中删除。
我有;
$ echo "$naughtyList"
ONE/1/one
TWO/2/two
THREE/3/three
FOUR/4/four
FIVE/5/five
和;
$ echo "$salvation"
TWO/2/two
FOUR/4/four
问题出在斜杠字符上。我在尝试时无法逃脱它们;
for line in $(echo $salvation); do
naughtyList=$(echo $naughtyList | sed "/$line/d")
done
sed: -e expression #1, char 6: unknown command: `2'
sed: -e expression #1, char 7: unknown command: `4'
有没有办法传递$line,或者我必须修改输入模式?
提前致谢。
最好在这里使用 grep -f
进程替换:
grep -vFf <(echo "$salvation") <(echo "$naughtyList")
ONE/1/one
THREE/3/three
FIVE/5/five
要更新 naughtyList
变量,请使用:
naughtyList=$(grep -vFf <(echo "$salvation") <(echo "$naughtyList"))