在Awk中仅获取文件名的一部分

在Awk中仅获取文件名的一部分,awk,gawk,Awk,Gawk,我试过了 awk '{print FILENAME}' 结果是文件的完整路径。 我只想获取文件名,例如:从“test/testing.test.txt”我只想获取“testing”而不包含“.test.txt”使用sub和/或split函数来提取所需文件名的部分。它必须与awk一起使用吗。。。BaseName怎么样?是的,因为我在一个文件中有这些记录行,我想将文件名插入到这些记录行中。我认为awk是最快的方法,我现在正在使用它。什么名字?你能说得更具体些吗?或者键入相应的命令?有一个命令bas

我试过了

awk '{print FILENAME}'
结果是文件的完整路径。
我只想获取文件名,例如:从“
test/testing.test.txt
”我只想获取“
testing
”而不包含“
.test.txt

使用sub和/或split函数来提取所需文件名的部分。

它必须与awk一起使用吗。。。BaseName怎么样?是的,因为我在一个文件中有这些记录行,我想将文件名插入到这些记录行中。我认为awk是最快的方法,我现在正在使用它。什么名字?你能说得更具体些吗?或者键入相应的命令?有一个命令
basename“$file.test.txt
,它将从文件名中删除目录前缀和
.test.txt
后缀,只保留样本名的
testing
。它一次使用一个文件名。删除
.text.txt
的基础是什么?使用
testing/.test.txt
应该做什么?使用
测试/abc.def
?使用
测试/test.txt.extra
?使用
testing.text.txt.extra
?我可能会遗漏一些东西,但是
echo“test/testing.test.txt”| awk'{n=split($0,ar,/\/);split(ar[n],ar2,/\./);print ar2[1]}'
?@JonathanLeffler您的意思是命令是询问'basename FILENAME'?测试文件夹的内部包含许多格式为abd.def.txt的文件,据我所知,您关于在awk中使用basename函数的说明可以得到我想要的名称文件,cmmiw?如何使用正确的格式?我是awk新手,你能给我一个例子吗?我使用这个脚本:awk'函数basename(file){sub(“.*/”,“”,file)return file}{print basename(FILENAME)}'但仍然返回完整路径,你有什么解决方案吗?你走对了。看看@dawg的评论。