使用shell脚本根据最后一个分隔符从文件名中提取左右两边



我想使用shell脚本根据最后一个分隔符从文件名中提取左和右

Ex : filename = 'test_testone_test3_1234'
I'm expecting below values
file = 'test_testone_test3'
seq = '1234'

有更好的方法吗?

您可能想了解一些关于参数扩展的知识

$ filename="test_testone_test3_1234"
$ echo "${filename#*_}"
testone_test3_1234
$ echo "${filename##*_}"
1234
$ echo "${filename%_*}"
test_testone_test3
$ echo "${filename%%_*}"
test
$ echo "${filename#*_*_}"
test3_1234
$ echo "${filename%_*_*}"
test_testone

您也可以使用cut-d用于字段分隔符,-f用于字段。

$ filename="test_testone_test3_1234"
$ echo "$filename" | cut -d_ -f1-3
test_testone_test3
$ echo "$filename" | cut -d_ -f4
1234
$ echo "$filename" | cut -d_ -f1-2
test_testone
$ echo "$filename" | cut -d_ -f3-
test3_1234

相关内容

  • 没有找到相关文章

最新更新