我试图弄清楚一旦我击中某个字符,如何从尾部修剪 Bash 中的字符串。
示例:如果我的字符串是这个(或任何链接):https://www.cnpp.usda.gov/Innovations/DataSource/MyFoodapediaData.zip
(我将其设置为我的变量)。
(即,如果我 echo $var
它将返回该链接:)
我想使用 Bash,我猜我需要使用 sed 或 awk,但我想修剪,从末尾开始,直到看到第一个/(因为将是文件名)和把它去掉。
因此,使用该链接,我试图获取/所以只是“MyFoodapediaData.zip”并将其设置为不同的变量。
所以最后,如果我 echo $var2 (如果我这样调用它)它只会返回:MyFoodapediaData.zip"
我尝试使用 sed 's.*/",这将从头开始直到找到第一个斜杠。如果可能的话,我正在寻找相反的顺序。
最佳答案
您可以使用 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
变量值的开头开始,删除直到最后 斜杠。”
参见parameter substitution在手册中
关于bash - 根据 Bash 中的特定字符修剪字符串(尾部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587819/