【问题标题】:shell script to extract text from a variable separated by forward slashes用于从由正斜杠分隔的变量中提取文本的 shell 脚本
【发布时间】:2015-01-01 16:46:09
【问题描述】:

我正在尝试找到一种方法来从变量中提取文本,其中单词由正斜杠分隔。我尝试使用cut,所以这里有一个例子:

set variable = '/one/two/three/four'  

假设我只想从中提取three,我使用了:

cut -d/ -f3 <<<"${variable}"

但这似乎行不通。关于我做错了什么的任何想法?或者有没有办法使用 AWK 来做到这一点?

【问题讨论】:

    标签: shell awk cut


    【解决方案1】:

    在字符串或变量赋值期间,您需要删除= 前后的空格。并告诉 cut 命令打印第 4 个字段。

    $ variable='/one/two/three/four'
    $ cut -d/ -f4 <<<"${variable}"
    three
    

    使用分隔符/,cut 命令将输入​​拆分。

                 /one/two/three/four
                |  |   |    |    |
                1  2   3    4    5
    

    也就是说,当它在第一个斜杠上分割时,你会得到一个空字符串作为第一列。

    【讨论】:

      【解决方案2】:

      我认为这里的主要问题在于您的作业。试试这个:

      var='/one/two/three/four'
      cut -d/ -f4 <<<"$var"
      

      【讨论】:

        【解决方案3】:

        这是awk 版本:

        awk -F\/ '{print $4}' <<< "$variable"
        three
        

        echo "$variable" | awk -F\/ '{print $4}'
        three
        

        PS 设置set 不需要的变量并删除= 周围的空格

        variable='/one/two/three/four' 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-23
          • 2016-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多