【问题标题】:Split remaining fields in sed/awk拆分 sed/awk 中的剩余字段
【发布时间】:2010-10-31 08:44:21
【问题描述】:

我有电话:

MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m

并希望将其转换为(在字段 2->n 上添加引号):

export MAVEN_OPTS="-XX:MaxPermSize=128m -Xms128m -Xmx768m"

【问题讨论】:

    标签: sed awk


    【解决方案1】:

    这是另一种方法:

    $ echo 'MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m' | 
    awk 'match($0,/=.*/)&&$0="export "substr($0,1,RSTART-1)"="substr($0,RSTART+1)'
    

    如果你有傻瓜:

    $ echo 'MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m' | 
    gawk '$0=gensub(/^(.*)=(.*)/,"\\1=\\2",1)'
    

    【讨论】:

      【解决方案2】:

      另一种 awk 解决方案:

      echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" |
      awk -F= 'BEGIN {OFS=FS} {$2="\"" $2; $NF=$NF "\""; print}'
      

      【讨论】:

        【解决方案3】:

        一些 awk 的可能性(在 ubuntu 中测试)

        echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" |  awk 'BEGIN{FS="MAVEN_OPTS="; OFS="MAVEN_OPTS=\""; ORS="\"\n"} {print $1,$2 }'
        
        echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" |  awk 'BEGIN{FS="MAVEN_OPTS="; OFS="MAVEN_OPTS=\"";} {print $1,$2 "\""}'
        

        【讨论】:

          【解决方案4】:
          echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" | sed 's/=/="/; s/$/"/'
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-03-12
            • 2017-08-25
            • 2012-05-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-29
            相关资源
            最近更新 更多