我一直在使用这种尝试提取文件名没有文件扩展:如何用awk
和它返回完整路径。
有没有人知道如何得到没有扩展的结果?
实施例: D:\Test\test.tested.txt
- >test
使用awk
?
我一直在使用这种尝试提取文件名没有文件扩展:如何用awk
和它返回完整路径。
有没有人知道如何得到没有扩展的结果?
实施例: D:\Test\test.tested.txt
- >test
使用awk
?
$ echo "D:\Test\test.tested.txt" |
awk '{n=split($1,a,"\\"); split(a[n],b,"."); print b[1]}'
test
您的脚本
... END{n=split(FILENAME,a,"\\"); split(a[n],b,"."); print b[1]}'
请尝试以下答案。
awk'END {var = FILENAME; n = split(var,a,///);打印[n]}'D:\ Test \ test.tested.txt | awk -F“。” '{打印$ 1}'
下AWK
代码你想要做什么:
!uniq[FILENAME]++ {
aux[++k] = FILENAME;
next;
}
END {
for(i = 1; i <= k; i++)
{
a = split(aux[i], x, ".");
print x[1];
}
}
作为一个班轮:
!uniq[FILENAME]++{aux[++k] = FILENAME; next;} END {for(i = 1; i <= k; i++) {a = split(aux[i], x, "."); print x[1];}} files
的next
,至少在我的机器上,给出了一个轻微比从代码中省略更快的结果。
注:
file01
file02
data01
:上面的代码会根据您传递给它的文件的顺序排序的输出,也就是说,如果你给它的文件
file01.txt file02.txt data01.txt
,他们将按照相同的顺序进行排序
的同一码A较短的版本将是:
!filename[FILENAME]++ {
next;
}
END {
for(i in filename)
{
a = split(i, x, ".");
print x[1];
}
}
作为一个衬里:
!filename[FILENAME]++ {next;} END {for(i in filename) {a = split(i, x, "."); print x[1];}} files
结果没有任何意义。用户可以对其进行分类。
谢谢@karakfa。是工作 – Bams