shell脚本从正斜杠分隔的变量中提取文本

时间:2014-11-05 13:12:59

标签: shell awk cut

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

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

说我只想从中提取three,我用过:

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

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

3 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:1)

我认为这里的主要问题在于你的任务。试试这个:

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

答案 2 :(得分:1)

以下是awk版本:

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

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

PS设置set不需要的变量,并删除=

周围的空格
variable='/one/two/three/four'