【问题标题】:Shell script cut command [duplicate]Shell脚本剪切命令[重复]
【发布时间】:2014-02-24 16:26:12
【问题描述】:

我正在尝试从数组中剪切 ABCserviceDEFService d 并打印它们。我在这里缺少什么?

  urlArray=('http://server:port/ABCservice/services/ABCservice?wsdl' 'http://server:port/DEFservice/services/DEFservice?wsdl')   
        for url in "${urlArray[@]}"
         do
            service=echo $url|cut -f4 -d/
            echo $service
        done

预期输出:

ABCService
DEFService

电流输出:

./test1.sh: line 6: http://server:port/ABCservice/services/ABCservice?wsdl: No such file or directory
./test1.sh: line 6: http://server:port/DEFservice/services/DEFservice?wsdl: No such file or directory

【问题讨论】:

    标签: shell cut


    【解决方案1】:

    这附近有什么?

    service=$(echo $url | cut -d"/" -f4)
    echo $service
    

    或直接

    echo $(echo $url | cut -d"/" -f4)
    

    代码中的问题:

    service=echo $url|cut -f4 -d\
    
    • 要将命令输出保存在变量中,我们这样做:service=$(command)
    • 您的cut 使用\ 作为分隔符,而不是/。用括号括起来也很好:-d "/"

    【讨论】:

      【解决方案2】:
      service=$(echo $url | cut -d/ -f6 | cut -d\? -f1)
      echo $service
      

      【讨论】:

        【解决方案3】:

        使用bash字符串函数:

        for i in "${!urlArray[@]}"; do 
            urlArray[i]="${urlArray[i]%\?*}"
            urlArray[i]="${urlArray[i]##*/}"
            echo ${urlArray[i]}
        done
        
        
        
        $ urlArray=('http://server:port/ABCservice/services/ABCservice?wsdl' 'http://server:port/DEFservice/services/DEFservice?wsdl') 
        $ for i in "${!urlArray[@]}"; do urlArray[i]="${urlArray[i]%\?*}"; urlArray[i]="${urlArray[i]##*/}";  echo ${urlArray[i]} ; done
        ABCservice
        DEFservice
        

        【讨论】:

          【解决方案4】:

          你的分隔符应该是一个正斜杠

          echo 'http://server:port/ABCservice/services/ABCservice?wsdl' | cut -f 4 -d/
          

          【讨论】:

            【解决方案5】:

            \ 是一个转义字符。请改用\\

            【讨论】:

            • 为避免转义字符,请使用反引号 ` 而不是双引号 "
            猜你喜欢
            • 1970-01-01
            • 2015-05-19
            • 2015-12-30
            • 1970-01-01
            • 2023-04-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-20
            相关资源
            最近更新 更多