假设我有字符串1:2:3:4:5,我想要得到它的最后一个字段(在本例中是5)。我如何使用Bash做到这一点?我试过cut,但我不知道如何用-f指定最后一个字段。
当前回答
$ echo "a b c d e" | tr ' ' '\n' | tail -1
e
只需将分隔符转换为换行符,并选择尾为-1的最后一个条目。
其他回答
for x in `echo $str | tr ";" "\n"`; do echo $x; done
使用Bash。
$ var1="1:2:3:4:0"
$ IFS=":"
$ set -- $var1
$ eval echo \$${#}
0
如果你想使用cut,你可以尝试这样做:
echo "1:2:3:4:5" | cut -d ":" -f5
你也可以像这样使用grep try:
echo " 1:2:3:4:5" | grep -o '[^:]*$'
$ echo "a b c d e" | tr ' ' '\n' | tail -1
e
只需将分隔符转换为换行符,并选择尾为-1的最后一个条目。
你可以使用字符串操作符:
$ foo=1:2:3:4:5
$ echo ${foo##*:}
5
这将从前面到':'贪婪地修剪所有内容。
${foo <-- from variable foo
## <-- greedy front trim
* <-- matches anything
: <-- until the last ':'
}