如何在Shell脚本中从字符串中删除特定键

时间:2019-06-25 12:31:30

标签: bash shell unix

我需要从字符串中删除后缀或带有下划线的特定键,并且需要将新字符串存储到变量中。该密钥可能出现在字符串的开头或结尾,或在下划线之间,并且字符串可能包含特殊字符

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 :(得分:0)

您可以使用变量替换:

${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