【问题标题】:skip the /data & / partition from output for fstab从 fstab 的输出中跳过 /data & / 分区
【发布时间】:2018-06-12 15:10:14
【问题描述】:

我有以下输出,我想在输出中去掉 /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 即可。有什么建议吗?

谢谢, 公斤

【问题讨论】:

  • 添加" | grep /data/" 不匹配/和/data ?
  • 感谢 Namokarm .. 成功了。
  • 我已经添加了我的评论作为答案,如果它帮助您解决了您的问题,请标记它。

标签: linux bash shell


【解决方案1】:

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

或者,如果你是线噪声的粉丝:

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

【讨论】:

    【解决方案2】:

    添加不匹配/和/data的“|grep /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|"' | grep /data/ > /tmp/mounts.txt
    

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多