这个 sed 命令 sed '/^[[:space:]]*$/d' 的含义是什么

这个 sed 命令 sed '/^[[:space:]]*$/d' 的含义是什么

我在脚本中遇到了这个 sed 命令,用于将计算机的本地二进制文件与 GTFObins 二进制文件进行比较。

    for i in $(curl -s https://gtfobins.github.io/ | html2text | cut -d" " -f1 | sed '/^[[:space:]]*$/d');
do 
    if grep -q "$i" installed_pkgs.list;
    then 
        echo "Check GTFO for: $i";
    fi;
done

我测试过它,发现它删除了行与行之间的空格,但我不明白它的形式或它是如何写的。

答案1

匹配行首 ( ) 和行^尾 ( ) 之间仅包含空格字符的任何行。$

https://regex101.com/是你的朋友。

/…/d指示sed删除任何匹配项,因此这只是从输入中消除空行(例如:没有内容,或行上只有空格、制表符和类似内容)。

相关内容