如何使用基本的 unix 工具从路径名中删除扩展名

Pet*_*mit 3 linux bash

我需要收集文件列表并将其放入文本文件中。但是,文件不应包含其扩展名。

我现在没有删除文件扩展名的命令:

ls -1 /a/dir/*/dir/* > textfile
Run Code Online (Sandbox Code Playgroud)

所有选定文件的扩展名为 .[az]{3}

(我需要这个的原因是因为我需要一个唯一的基本名称列表,并且unique会在这一步之后解决这个问题)

小智 5

类似的东西会列出当前目录中的文件,删除第一个点之后的所有内容。

find . -maxdepth 1 -type f | xargs -iZ basename Z | cut -d"." -f1 > /tmp/resultfile

它最终会出现隐藏文件的问题,导致结果文件中出现空行。Basename 在这里只是为了摆脱查找结果中文件名开头的“./” 。