2014-11-05 195 views
0

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

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

说我只是想提取此three,我用:

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

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

回答

2

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

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

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

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

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

1

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

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

这里是一个awk版本:

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

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

PS设置一个变量不需要为set并删除周围=

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