[英]Remove Beginning And End Of Each Element In Array In Bash
我有一个包含3个元素的bash数组,我需要从所有元素中删除第一个X数字字符,并从所有元素中删除最后一个Y数字字符。 如何做到这一点。 下面的例子:
echo ${array[@]}
random/path/file1.txt random/path/file2.txt random/path/file3.txt
我希望这个数组成为
echo ${array[@]}
file1 file2 file3
如何做到这一点?
这将与一枪:
$ a=( "/path/to/file1.txt" "path/to/file2.txt" )
$ basename -a "${a[@]%.*}"
file1
file2
偏离路线,可以将其括在$()中以便分配给变量。
一步之遥是不可能的。 但是,您可以先删除前缀,然后删除后缀。
array=( "${array[@]##*/" ) # Remove the longest prefix matching */ from each element
array=( "${array[@]%.*}" ) # Remove the shortest suffix match .* from each element
您仍然可以在此处使用基本的字符串操作:
echo ${array[@]##*/}
或者,将其分配给数组:
array=(${array[@]##*/})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.