我用的是 Mac。我需要获取文件夹中的文件列表,但不要在列表中包含它们的扩展名。这是因为我需要一个产品列表来导入网站,而且方便的是,图片名称与产品名称相同。但是,我的列表不需要包含扩展名。
我使用终端获得了文件名列表,并能够将它们复制到文本文件中。唯一的问题是文件名包含扩展名“.jpg”。使用我从终端获得的列表,我现在必须浏览我的文本文件并手动删除每个文件名的扩展名(超过一千个),这将花费很长时间。有没有更简单的方法?我可以让终端显示不带扩展名的文件名列表,以便我可以将其复制并粘贴到列表中吗?或者我可以从这些文件中删除扩展名,然后在终端中列出它们并复制它们的名称吗?还有其他方法吗?我很困惑。我不是程序员,只是网站设计师。
希望有人能帮忙。谢谢大家!
答案1
答案2
如果文件“in.txt”中有文件列表,请运行此脚本来获取“out.txt”中没有扩展名的文件列表:
#!/bin/bash
while read fullfile; do
filename=$(basename "$fullfile")
filename="${filename%.*}"
echo $filename >> out.txt
done <in.txt
答案3
你使用vi
(或vim
) 吗?如果你这样做,那么,由于你已经在文本文件中获得了 JPEG 文件名,最简单的方法可能是使用vi
/编辑该文件vim
并输入
:%s/\.jpg$//
意思是,在文件的每一行中,查找.jpg
行末出现的 ,将其删除,并将其替换为空。如果有些行不是以 结尾的.jpg
,那也没关系;它们将被忽略(跳过)。如果每行有多个产品名称(文件名),例如
hammer.jpg screwdriver.jpg wrench.jpg
只需省略$
并添加g
并说
:%s/\.jpg//g
这将删除全部的出现.jpg
,即使它们不在一行的末尾。