Linux 从路径中取出文件名


# 转义
echo "src/resource/" | sed 's/\//\\\//g'
# src\/resource\/

# 查询路径
echo "src/resource/demo.tar.gz" | grep -P -o ".+/"
# src/resource/

# 查询路径并转义
echo "src/resource/demo.tar.gz" | grep -P -o ".+/" | sed 's/\//\\\//g'
# src\/resource\/

# 高亮结果
echo "src/resource/demo.tar.gz" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*"
# src\/resource\/

# 组装命令
echo "echo \"src/resource/demo.tar.gz\" | sed 's/$(echo "src/resource/demo.tar.gz" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'"
# echo src/resource/demo.tar.gz | sed 's/src\/resource\///'

# 获取文件名
eval $(echo "echo \"src/resource/demo.tar.gz\" | sed 's/$(echo "src/resource/demo.tar.gz" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'")
# demo.tar.gz

# 使用变量替换
TMP_FILE_DEMO="src/resource/demo.tar.gz"; eval $(echo "echo \"$TMP_FILE_DEMO\" | sed 's/$(echo "$TMP_FILE_DEMO" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'")
# demo.tar.gz

# 测试含有空格的文件
TMP_FILE_DEMO="src/resource/demo 2.tar.gz"; eval $(echo "echo \"$TMP_FILE_DEMO\" | sed 's/$(echo "$TMP_FILE_DEMO" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'")
# demo 2.tar.gz

# 测试含有空格的路径
TMP_FILE_DEMO="src/resource/project back/demo 3.tar.gz"; eval $(echo "echo \"$TMP_FILE_DEMO\" | sed 's/$(echo "$TMP_FILE_DEMO" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'")
# demo 3.tar.gz

# 组成方法
getFileName() {
  echo $(eval $(echo "echo \"$1\" | sed 's/$(echo "$1" | grep -P -o ".+/" | sed 's/\//\\\//g' | grep -P -o ".*")//'"))
}
getFileName "src/resource/demo.tar.gz"
# demo.tar.gz


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值