Разрезать имя файла на две части размером unix - PullRequest
0 голосов
/ 17 июня 2020

У меня есть требование разрезать имя файла на две части.
Итак, мое имя файла: 'SIC_ETL_MAIN_0.1.zip'
Я хочу разрезать имя файла на части и загрузить в две переменные отдельно Ожидаемый результат:

SIC_ETL_MAIN - var1
0.1 - var2

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

с использованием grep

$echo SIC_ETL_MAIN_0.1.zip |  grep -o '[A-Z_]*[A-Z]'
SIC_ETL_MAIN
$echo SIC_ETL_MAIN_0.1.zip |  grep -o '[0-9\.]*[0-9]'
0.1
$

Изменить: присвоение переменной

$var1=$(echo SIC_ETL_MAIN_0.1.zip |  grep -o '[A-Z_]*[A-Z]')
$var2=$(echo SIC_ETL_MAIN_0.1.zip |  grep -o '[0-9\.]*[0-9]')
$echo "Var1=${var1}  Var2=${var2}"                                                
Var1=SIC_ETL_MAIN  Var2=0.1
$
0 голосов
/ 17 июня 2020

Если ваша оболочка bash (или другая оболочка с shubstrings)

a=SIC_ETL_MAIN_0.1.zip
b=${a%_*}
c=${a##*_}
d=${c%.*}

echo "$a | $b | $c | $d" # will output
SIC_ETL_MAIN_0.1.zip | SIC_ETL_MAIN | 0.1.zip | 0.1
...