Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀
使用sed:$?echo?"$string"?|?sed?-e?"s/^$prefix//"?-e?"s/$suffix$//"o-wor
在sed命令中,^字符匹配以?開頭的文本$prefix,尾隨$匹配以$suffix。結(jié)尾的文本。
AdrianFrühwirth在下面的評論中提出了一些好處,但sed為此目的可能非常有用。$ sed和$ suffix的內(nèi)容由sed解釋的事實可能是好的或壞的 - 只要你注意,你應(yīng)該沒事。美麗的是,你可以這樣做:$?prefix='^.*ll'$?suffix='ld$'$?echo?"$string"?|?sed?-e?"s/^$prefix//"?-e?"s/$suffix$//"o-wor
這可能是你想要的,并且比bash變量替換更有魅力和更強(qiáng)大。如果你記得有很大的力量就會有很大的責(zé)任(正如蜘蛛俠說的那樣),你應(yīng)該沒事。
關(guān)于shell及其字符串使用的注釋:
對于給出的特定示例,以下內(nèi)容也可以使用:$?echo?$string?|?sed?-e?s/^$prefix//?-e?s/$suffix$//
......但僅僅是因為:echo不關(guān)心它的參數(shù)列表中有多少個字符串,以及
$ prefix和$ suffix中沒有空格
在命令行中引用字符串通常是一種好習(xí)慣,因為即使它包含空格,它也會作為單個參數(shù)顯示給命令。我們引用$ prefix和$ suffix的原因相同:sed的每個edit命令都將作為一個字符串傳遞。我們使用雙引號,因為它們允許變量插值;?如果我們使用單引號,sed命令會得到一個字面值$prefix,$suffix這肯定不是我們想要的。
還請注意,我設(shè)置的變量時,使用單引號prefix和suffix。我們當(dāng)然不希望對字符串中的任何內(nèi)容進(jìn)行解釋,因此我們單引引它們以便不進(jìn)行插值。同樣,在這個例子中可能沒有必要,但這是一個非常好的習(xí)慣。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机主机声音怎么办,电脑主机声音大怎么
- 下一篇: netty冲突 play sbt_《Ne