shell脚本,用于根据目录

时间:2016-04-20 20:49:48

标签: linux bash shell

说我的文件夹如下所示

- folder
 - file1.json
 - file2.json

我需要一个shell脚本,它会在运行后给我这个:

- folder
 - file1.json
 - file2.json
 - file1.sh
 - file2.sh

创建文件后。然后我需要填充file1.sh和file2.sh,其内容部分是从file1.json和file2.json复制的。

我可以通过以下方式逐行完成此操作,但是当我有很多文件时,这是不切实际的。

touch file1.sh
cat somecontent.txt >> file1.sh
cat file1.txt >> file1.sh
cat othercontetn.txt >> file1.sh
touch file2.sh
cat somecontent.txt >> file2.sh
cat file1.txt >> file2.sh
cat othercontetn.txt >> file2.sh

我正在寻找一种方法自动解析文件夹并根据文件夹中的任何文件创建文件。可以先假设文件夹中只有文件。 但实际上在我的情况下,最好的解决方案应该适用于文件夹中有文件夹的情况。

2 个答案:

答案 0 :(得分:3)

方法自动解析文件夹并根据文件夹中的任何文件创建文件。

以下代码查找.json并使用{same prefix} .sh

创建相同的内容文件
find /folder -name "*.json"  -exec bash -c 'cat "$1" > "${1%.*}.sh"' _ {} \;

答案 1 :(得分:1)

一个简单的Bash循环就可以了

for f in folder/*.json
do cat folder/somecontent.txt "$f" > "${f%.json}".sh
done