Как удалить определенный ключ из строки в сценарии оболочки - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно удалить конкретный ключ с суффиксом или префиксом с подчеркиванием из строки и нужно сохранить новую строку в переменной. Этот ключ может присутствовать в начале строки или в конце строки или между подчеркиванием, и строка может содержать специальные символы

String              Result
AA_B_676.csv.gz     AA_B.csv.gz
676_AA_B.csv.sgnl   AA_B.csv.sgnl
AA_B.csv_676        AA_B.csv
AA_B.csv.sgnl_676   AA_B.csv.sgnl

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете использовать подстановку переменных:

${var/pattern/replace}

пример

#!/bin/bash

testdata=(
AA_B_676.csv.gz
676_AA_B.csv.sgnl
AA_B.csv_676
AA_B.csv.sgnl_676
)

for str in "${testdata[@]}"; do
   str="${str/_676/}"
   str="${str/676_/}"
   echo "$str" 
done  

выход

AA_B.csv.gz
AA_B.csv.sgnl
AA_B.csv
AA_B.csv.sgnl
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...