linux - 从变量值中删除直到并包括最后一个 "/"的所有内容

标签 linux bash unix awk sed

我目前正在学习如何使用 grep awk sed。我遇到了具有以下值的变量的问题:new_file="main_folder/test.txt"。实际上是一个目录,里面有一个文件。我最初可以使用 sed 删除文件扩展名。但主要目标只是获取从变量 new_file 中提取的文件名 test(无扩展名)。我怎样才能删除最后的所有内容和文件扩展名?

到目前为止,我所做的只是删除扩展

new_file=`rev <<< "$new_file" | cut -d"." -f2- | rev`

例子:

输入

new_file="parent_folder/child_folder/file_name.txt"
new_file2="parent_folder/child_folder/sub_child_folder/file_name2.txt"

期望的输出:

file_name
file_name2

最佳答案

您可以使用 basename 实用程序。

$ new_file="parent_folder/child_folder/file_name.txt"
$ x=$(basename "$new_file" .txt)
$ echo "$x"
file_name

或者你的情况

new_file=`basename $new_file | cut -d "." --complement -f2-`

关于linux - 从变量值中删除直到并包括最后一个 "/"的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289793/

相关文章:

linux - 如何检测我的网络摄像头支持哪种像素格式?

bash - 服务器错误 (NotFound) : pods "\nmongo-client-79667cc85d-tsg72" not found

bash - 在 Bash 中模拟 do-while 循环

linux - ash 文件的结构如何?

linux - 通过命令行将标志和其他参数一起传递给 ksh 脚本

c - 如何将所有 C 文件编译成对象并将其放在子目录中

linux - 为包含单引号的命令创建别名

linux - 在 Linux 中使用带连字符和不带连字符的 su 时出现错误无可用编码

php - 如何从 PHP 调用 bash 函数?

linux - 查找名称与多种模式之一匹配的文件并复制到不同的目录