首页 > 解决方案 > 从 fstab 的输出中跳过 /data & / 分区

问题描述

我有以下输出,我想在输出中删除 /data & / 。

cat /etc/fstab  | egrep -v '^#' | awk '{print $2}'| grep -i "^/" | egrep -v '/etc/fstab|proc|sys|shm|pts|/apps|/boot|home|/opt|/var|/var|/crash|/tmp|"' > /tmp/mounts.txt

输出:

/
/data
/data/logs/mount1
/data/logs/mount2

我只需要显示 /data/logs/mount1 和 /data/logs/mount2 即可。有什么建议么 ?

谢谢,KG

标签: linuxbashshell

解决方案


awk 可以完成您的管道所做的所有事情:

awk '
    # skip comments and empty lines
    $1 ~ /^#/ || NF == 0 {next}
    # skip mountpoints not beginning with a slash
    $2 ~/^[^/]/ {next}
    # skip / and /data
    $2 == "/" || $2 == "/data" {next}
    {print $2}
' /etc/fstab

或者,如果你是 linenoise 的粉丝:

awk 'NF&&$1!~/^#/&&$2!~/^[^/]/&&$2!="/"&&$2!="/data" {print $2}' /etc/fstab

推荐阅读