V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
blender2017
V2EX  ›  Linux

分享一句自己刚写的命令

  •  
  •   blender2017 · 2019-01-30 16:31:28 +08:00 · 4718 次点击
    这是一个创建于 2105 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 "是防止包的描述里出现包的名字。这个命令大家有更好的写法吗。。。

    第 1 条附言  ·  2019-01-30 22:32:59 +08:00
    才知道 uniq 的-c。。果然好用
    修改前半部分后:
    for i in $(cat a b c | grep "^ii" | awk '{print $2}' | sort | uniq -c | grep "^ 3" | awk '{print $2}'); do sed -i "/ii $i /d" a b c; done

    只留包名和包的描述(-c 35-78 部分受系统里最长包名影响):
    cat c | cut -c 35-78 --complement | cut -c 1-4 --complement
    第 2 条附言  ·  2019-01-30 22:56:46 +08:00
    ii 和$i 之间是 2 个空格,^和 3 之间是 6 个空格
    15 条回复    2019-01-31 11:25:39 +08:00
    quinoa42
        1
    quinoa42  
       2019-01-30 16:35:44 +08:00 via Android
    呃。。用 python 写可能只要 10 分钟
    我也喜欢自己写些 bash 脚本,但有些情况不能太走火入魔
    oott123
        2
    oott123  
       2019-01-30 16:47:24 +08:00
    cat a b c | sort | uniq -c | grep -v "^\s3"
    guog
        3
    guog  
       2019-01-30 16:55:08 +08:00
    diff3 a b c
    prolic
        4
    prolic  
       2019-01-30 16:57:51 +08:00
    换我就直接 vimdiff a b c 看
    dorothyREN
        5
    dorothyREN  
       2019-01-30 16:59:27 +08:00
    a b c 文件直接合并 然后 sort| uniq -c 重复次数为 3 的就是三个都有的。
    hei1000
        6
    hei1000  
       2019-01-30 17:07:35 +08:00
    我有好多自己写的命令(脚本,函数,alias ),不过 shell 我用的 fishshell
    lihongjie0209
        8
    lihongjie0209  
       2019-01-30 17:37:35 +08:00
    auv1107
        9
    auv1107  
       2019-01-30 19:57:13 +08:00
    grep 两个文件,结果和第三个文件 grep
    May725
        10
    May725  
       2019-01-30 20:16:50 +08:00
    各领风骚
    loading
        11
    loading  
       2019-01-30 20:46:26 +08:00 via Android
    喔,这种看不懂的脚本我根本不敢跑。
    Lax
        12
    Lax  
       2019-01-30 21:15:41 +08:00
    有点走火入魔
    scukmh
        13
    scukmh  
       2019-01-30 21:21:40 +08:00
    这种脚本我不敢跑(
    ivamp
        14
    ivamp  
       2019-01-31 09:56:58 +08:00
    @bingu 好东西呀
    lulinux
        15
    lulinux  
       2019-01-31 11:25:39 +08:00 via Android
    sed -i 命令有点危险,其他还好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4625 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.