我有一个关于bash的问题,我在一个目录中有一些不同的文件,每个文件都有一个相同名称但不同扩展名的副本,如:
文件脚本位于主目录中,目录中包含文件
def some_method
@provider = Provider.find_by_id(params[:provider])
@categories = @provider.categories
respond_to do |format|
format.json { render json: @categories}
end
end
文件是这样的:
~home/file_directory:
我想要一个新目录,其中包含两个文件的相同名称:
pippo.cvs
pippo.xlsx
mimmo.cvs
mimmo.xlsx
lollo.cvs
lollo.xlsx
所以
pippo
mimmo
lollo
~home/file_directory/pippo:
pippo.xlsx
pippo.csv
答案 0 :(得分:0)
首先进入存在所有文件的目录
def parse_centers_and_ambulances(self, response):
json_response = json.loads(response.body_as_unicode())
facility = MedFacilityItem()
facility["name"] = "Med Facility #1"
centers = []
med_centers = MedCenterItem()
for center in json_response:
if center["name"].startswith("Center"):
med_centers["response_url"] = center["product_id"]
med_centers["name"] = center["name"]
med_centers["address"] = center["name_short"] + "." +
center["adr_name"] + " " +
center["adr_dom"]
med_centers["lat"] = center["latitude"]
med_centers["lon"] = center["longitude"]
med_centers["phoneInfo"] = [{"number": center["tel1"],
"description": center["tel1_descr"]},
{"number": center["tel2"],
"description": center["tel2_descr"]}]
centers.append(med_centers)
facility["facility_type"] = centers
return facility
上面创建带有文件名的目录(没有扩展名)忽略“文件存在”,因为目录已经创建。
然后将文件移动到所需目录
Administrators-MacBook-Pro:test anudeep$ for i in *;do mkdir ${i%.*};done
mkdir: lollo: File exists
mkdir: mimmo: File exists
mkdir: pippo: File exists
Administrators-MacBook-Pro:test anudeep$
你现在完成了!
答案 1 :(得分:0)
这是一个相当基本的脚本问题,技巧位是提取目录名:
for fname in *.cvs *.xlsx
do
# delete the shortest string on the right
# starting with '.'
dname=${fname%.*}
# If the directory does not exist then create it
[[ -d $dname ]] || mkdir "$dname"
mv "$fname" "$dname"
done
很多“双引号”,以防万一文件名中有嵌入空格。