Shell脚本:如何检测源列表是否缺少路由列表的数据

use*_*604 1 unix bash shell diff sed

我想检测Data2中未包含在Data2中的值.我有2个变量,其中包含:

Data1="PF10_SBCA-B
PF5_SBCA-G
PF10_SBCE-F
PF10_SBCC-W"

Data2="PF5_SBCA-B
PF10_SBCE-F
PF10_SBCA-B
PF5_SBCC-W"
Run Code Online (Sandbox Code Playgroud)

我试试

res=$(diff <(echo "$Data1") <(echo "$Data2"));
echo "$res"
Run Code Online (Sandbox Code Playgroud)

我明白了

1c1,4
<
---
> PF5_SBCA-B
> PF10_SBCE-F
> PF10_SBCA-B
> PF5_SBCC-W
Run Code Online (Sandbox Code Playgroud)

代替

PF5_SBCA-G
PF10_SBCC-W
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢

Rom*_*est 5

只需comm+ sort命令:

comm -23 <(sort <<<"$Data1") <(sort <<<"$Data2")
Run Code Online (Sandbox Code Playgroud)

输出:

PF10_SBCC-W
PF5_SBCA-G
Run Code Online (Sandbox Code Playgroud)

概要: comm [OPTION]... FILE1 FILE2

  • -2- 抑制第2列(行唯一FILE2)
  • -3 - 禁止第3列(两个文件中出现的行)

FILE1将打印出独特的线条.