2017-02-04 44 views
-3

如何在Bash中的分隔符字符串之前獲取文本?喜歡: str="Hello World! It's a nice Day!"我需要得到nice之前的一切。 echo $str應該告訴我Hello World! It's a 謝謝BASH:在字符串之前獲取文本

+1

https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion – melpomene

回答

2

可以使用%%%操作:

$ str="Hello World! It's a nice Day!" ; echo "<${str%%nice *}>" 
<Hello World! It's a> 

這將刪除最長的後綴。

bash reference manual

${parameter%word}
${parameter%%word}

被膨脹,以產生一個模式,就像在文件名擴展。如果圖案參數的膨脹 值的尾部匹配,則擴展的結果是 參數用最短的匹配(「%」情況下)或 最長的匹配的值( '%%'的情況)被刪除。如果參數是'@' 或'*',則將模式移除操作依次應用於每個位置 參數,並且擴展是結果列表。如果 參數是與「@」或「*」,下標數組變量的 圖案去除操作被施加到在 依次陣列的每個成員,並且膨脹爲結果的列表。

+0

謝謝,它的功能就像一個魅力! – Chris

相關問題