for i in $(cat a b c | grep '^ii' | awk '{print $2}' | sort | uniq); do [ "$(grep "ii $i " a)" ] && [ "$(grep "ii $i " b)" ] && [ "$(grep "ii $i " c)" ] && sed -i "/ii $i /d" a b c; done
安装 Debian 时有好几个备选,有个 standard system utilities。想搞清楚这个东西时包含哪些东西,就安装了三个虚拟机:一个什么也不选,装出来的系统最干净,只有最基本的系统;一个只选了 standard system utilities 这个选项;最后一个只选了 gnome 桌面环境。然后三个装好的系统都导出 dpkg -l 结果。三个文件分别命名主 a b c。上面的命令就是把三个里面都有的包删掉,这样就知道那个 standard system utilities 选项里有哪些东西了。写这个命令写了一天,很有意思。哈哈。
regex 写成这样"ii $i "是防止包的描述里出现包的名字。这个命令大家有更好的写法吗。。。
呃。。用 python 写可能只要 10 分钟
我也喜欢自己写些 bash 脚本,但有些情况不能太走火入魔
cat a b c | sort | uniq -c | grep -v "^\s3"
diff3 a b c
换我就直接 vimdiff a b c 看
a b c 文件直接合并 然后 sort| uniq -c 重复次数为 3 的就是三个都有的。
我有好多自己写的命令(脚本,函数,alias ),不过 shell 我用的 fishshell
https://explainshell.com/explain?cmd=for+i+in+%24%28cat+a+b+c+%7C+grep+%27%5Eii%27+%7C+awk+%27%7Bprint+%242%7D%27+%7C+sort+%7C+uniq%29%3B+do+%5B+%22%24%28grep+%22ii+%24i+%22+a%29%22+%5D+%26%26+%5B+%22%24%28grep+%22ii+%24i+%22+b%29%22+%5D+%26%26+%5B+%22%24%28grep+%22ii+%24i+%22+c%29%22+%5D+%26%26+sed+-i+%22%2Fii+%24i+%2Fd%22+a+b+c%3B+done
https://askubuntu.com/questions/766419/whats-in-standard-system-utilities-in-the-server-install
sudo tasksel --task-package standard
grep 两个文件,结果和第三个文件 grep
各领风骚
喔,这种看不懂的脚本我根本不敢跑。
有点走火入魔
这种脚本我不敢跑(
好东西呀
sed -i 命令有点危险,其他还好