首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在从文件中解析行时需要匹配KSH中的模式

在从文件中解析行时需要匹配KSH中的模式
EN

Unix & Linux用户
提问于 2018-08-08 12:24:23
回答 1查看 179关注 0票数 0
代码语言:javascript
复制
FILE_CENT="/etc/nsswitch.conf"

if [[ $OS = 'Linux' ]]; then
 if [[ -e $FILE_CENT ]]; then
  logInfo "nsswitch.conf found in $OS, Proceeding further..."
   while read -r LINE
   do
    if [[ `echo $LINE | sed '/^passwd/'` ]]; then
     myarrlin=($LINE)
     logInfo "ARRAY VALUES : ${myarrlin[0]},${myarrlin[1]},${myarrlin[2]}"
      if [[ `echo ${myarrlin[1]} | egrep -s "centrify$|^centrifydc$"` || `echo ${myarrlin[2]} | egrep -s "centrify$|^centrifydc$"` ]]; then
       IS_ADMIN_ENT_ACC=3
       CENT=1
       logInfo "Centrify is enabled with $OS"
      else
       CENT=0
       logInfo "Centrify is disabled with $OS"
      fi
     fi
   done < $FILE_CENT
  else
  logInfo "nsswitch.conf does not exist in $OS, cannot fetch CENTRIFY information!"
 fi
fi

在这里,我使用sed和egrep进行模式匹配,但它们都没有给出正确的结果。

此外,我不确定我是否可以使用regex与egrep?在KSH中挣扎于模式匹配。

投入:

EN

回答 1

Unix & Linux用户

发布于 2018-08-08 12:49:14

考虑简化您的逻辑,只需询问字符串"centrify“是否在/etc/nsswitch.conf的"passwd:”行中。将整个while循环替换为:

代码语言:javascript
复制
if grep -q '^passwd:.*centrify' /etc/nsswitch.conf
then
  IS_ADMIN_ENT_ACC=3
  CENT=1
  logInfo "Centrify is enabled with $OS"
else
  CENT=0
  logInfo "Centrify is disabled with $OS"
fi
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/461276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档