根据Bash中的特定字符修剪字符串(拖尾结束)

时间:2017-03-03 20:22:58

标签: bash awk sed trim

我打算尝试弄清楚Bash中的一个字符串是如何在跟踪某个字符后从尾端修剪的。

示例:如果我的字符串是此(或任何链接):https://www.cnpp.usda.gov/Innovations/DataSource/MyFoodapediaData.zip

(我将其设置为我的变量)。 (即如果我echo $var它将返回该链接:)

我想要使用Bash,我猜我需要使用sed或awk,但我想修剪,从结束开始直到我看到第一个/(因为将是文件名)并将其剥离。

因此,使用该链接,我试图获得/#jus" MyFoodapediaData.zip"并将其设置为另一个变量。

所以最后,如果我回显$ var2(如果我称之为),它将返回:MyFoodapediaData.zip"

我尝试过使用sed' s。* /"这将从头开始,直到找到第一个斜杠。如果可能的话,我正在寻找相反的顺序。

1 个答案:

答案 0 :(得分:3)

您可以使用bash内置参数替换:

$ var='https://www.cnpp.usda.gov/Innovations/DataSource/MyFoodapediaData.zip'
$ echo "$var"
https://www.cnpp.usda.gov/Innovations/DataSource/MyFoodapediaData.zip
$ var2=${var##*/}
$ echo "$var2"
MyFoodapediaData.zip

${var##*/}表示"从var变量值的开头,删除 last 斜杠的所有内容。"

请参阅手册中的parameter substitution