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