如何使用bash仅解析具有不同分隔符的变量的一部分?

0 bash

我在bash文件中有一个循环来向我显示目录中的所有文件,每个文件都是自己的变量.我需要获取该变量(文件名)并仅解析它的一部分.

例:

92378478234978ehbWHATIWANT#98712398712398723

现在,假设"ehb"和英镑符号永远不会改变,我怎样才能将WHATIWANT捕获到自己的变量中?


到目前为止,我有:

#!/bin/bash
for FILENAME in `dir -d *` ; do

done
Run Code Online (Sandbox Code Playgroud)

eph*_*ent 6

您可以sed用来编辑您不想要的部分.

want=$(echo "$FILENAME" | sed -e 's/.*ehb\(.*\)#.*/\1/')
Run Code Online (Sandbox Code Playgroud)

或者你可以使用Bash的参数扩展去除尾部和头部.

want=${FILENAME%#*}; want=${want#*ehb}
Run Code Online (Sandbox Code Playgroud)