我目前正在学习如何使用 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/