Bash创建包含文件夹名称

时间:2017-04-11 12:26:58

标签: bash shell file

我有一个名为FolderName的文件夹,包含很多png文件,不一定按顺序排列,例如

01.png, 32.png ... 

我想为它们中的每一个创建一个.txt文件,其名称与png文件相同,

01.txt, 32.txt ...

和所有文本文件只包含文件夹的名称。

我不知道如何做到这一点,我花了最后30分钟阅读有关bash脚本的内容。请帮忙。

我到目前为止所做的一切都是

#!/bin/bash

folder=/home/user/folder/

for file in $("$folder")
do
   name=$(basename "$file" .txt)
   printf '%s\n' "$line" >"$file".txt

done 

1 个答案:

答案 0 :(得分:0)

您可以使用:

#!/bin/bash
folder="/home/user/folder"
for filePng in $folder/*
do
 fileTxt=${filePng/png/txt}
 dirname "$filePng" > "$fileTxt"
done

一些解释:

  • $folder/*扩展为文件列表,以空格分隔。 for将遍历该列表。
  • ${variable/pattern/substition}是bash字符串替换

[编辑]我假设.txt文件位于$folder