【问题标题】:bash - parsing file and getting variablesbash - 解析文件并获取变量
【发布时间】:2014-10-12 19:45:48
【问题描述】:

我已经在这里搜索并搜索了答案,我认为在 bash 中成为菜鸟的组合, 不知道执行此操作的正确方法,也没有搜索正确的关键字,这意味着我无法完全克服最后一个障碍。

我希望编写一个脚本,对我们的 Netapp 系统进行一些检查。而且我在完成前 2 个变量(VAR1 和 VAR2)时遇到了一些困难……我尝试使用 cut 和 awk 命令,但我所有的尝试都没有成功。

我有一个文本文件 (LUNS),它看起来像:

     #SAN1; SAN2
    abc1:abc1N
    abc2:abc2N 
    a3:a3N 
    abcde4:abcde4N

所有的行都是文本和数字的东西。

对于tom文件的每一行,我都想做:

  • 获取VAR1中第一列的值
  • 获取第 2 列 un VAR2 的值
  • 运行并为具有 VAR1 的命令获取新值 VAR3(它将是 LUN 的大小,因此它将是一个数值)
  • 运行并为带有 VAR2 的命令获取新值 VAR4(如下所示)
  • 比较VAR3和VAR4的数值

我做了什么:

    cat tom |grep -v "#" |while read ligne ; do 
    VAR1=awk -F ";" '{print $1}'
    VAR2=awk -F ";" '{print $1}'
    specific command to get the numeric VAR3 & VAR4 values.
    #and run the comparaison  like : 
    if [ "$VAR3" -ne "$VAR4" ] 
    then
    echo "PROBLEM"
            if [ "$VAR4" -lt "$VAR3" ] ; then echo $VAR4; rm $VAR4; else echo "call support"; fi
    else 
    echo "Everything is OK"
    fi  

我的 awk 不工作。 我愿意对配置文件进行任何修改,或者以我的方式获取 VAR1 和 VAR2 变量

请给我意见好吗?

【问题讨论】:

    标签: bash variables awk cut netapp


    【解决方案1】:

    你应该使用

    命令替代$(some command) 例如a=$(ls)

    引用机制

    所以awk 可以使用任何一个

    VAR1=$(awk -F ";" '{print $1}')
    VAR2=$(awk -F ";" '{print $1}')
    

    VAR1=`awk -F ";" '{print $1}'`
    VAR2=`awk -F ";" '{print $1}'`
    

    【讨论】:

      【解决方案2】:

      一方面,你需要做

      VAR1=$(echo $ligne|awk -F ";" '{print $1}')
      VAR2=$(echo $ligne|awk -F ";" '{print $2}')
      

      【讨论】:

        【解决方案3】:

        无需使用awk

        可以像这样重写循环

        #!/bin/bash
        
        while read line;do
            [[ "$line" =~ ^#.*$ ]] && continue
            VAR1=${line%:*}
            VAR2=${line#*:}
            echo $VAR1
            echo $VAR2
        done < test
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-11-24
          • 1970-01-01
          • 2013-02-27
          • 2013-05-10
          • 2011-06-10
          • 2019-07-23
          • 1970-01-01
          相关资源
          最近更新 更多