我想找到一种方法来从变量中提取文本,并用正斜杠分隔单词。我尝试过使用cut
,所以这里有一个例子:shell脚本从正斜杠分隔的变量中提取文本
set variable = '/one/two/three/four'
说我只是想提取此three
,我用:
cut -d/ -f3 <<<"${variable}"
但这似乎行不通。我做错了什么想法?或者有没有使用AWK来做到这一点的方法?
我想找到一种方法来从变量中提取文本,并用正斜杠分隔单词。我尝试过使用cut
,所以这里有一个例子:shell脚本从正斜杠分隔的变量中提取文本
set variable = '/one/two/three/four'
说我只是想提取此three
,我用:
cut -d/ -f3 <<<"${variable}"
但这似乎行不通。我做错了什么想法?或者有没有使用AWK来做到这一点的方法?
您需要在字符串或变量赋值期间删除=
之前和之后的空格。并告诉切割命令打印第4场。
$ variable='/one/two/three/four'
$ cut -d/ -f4 <<<"${variable}"
three
使用分隔符/
,cut命令分割输入。
/one/two/three/four
| | | | |
1 2 3 4 5
也就是说,当它在第一个斜杠上分开时,会得到一个空字符串作为第一列。
我认为这里的主要问题在于你的任务。试试这个:
var='/one/two/three/four'
cut -d/ -f4 <<<"$var"
这里是一个awk
版本:
awk -F\/ '{print $4}' <<< "$variable"
three
或
echo "$variable" | awk -F\/ '{print $4}'
three
PS设置一个变量不需要为set
并删除周围=
variable='/one/two/three/four'
空间