簡體   English   中英

如何從shell腳本中的字符串中刪除特定鍵

[英]How to remove a specific key form a string in shell script

我需要從字符串中刪除以下划線為后綴或前綴的特定鍵,並且需要將新字符串存儲到變量中。 此鍵可能出現在字符串的開頭或字符串的末尾或中間有下划線,並且字符串可能包含特殊字符

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

您可以使用變量替換:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM