linux - 基于目录中现有文件创建文件的shell脚本

标签 linux bash shell

假设我的文件夹如下所示

- folder
 - file1.json
 - file2.json

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

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

创建文件后。然后我需要用相应地从 file1.json 和 file2.json 复制的部分内容填充 file1.sh 和 file2.sh。

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

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

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

最佳答案

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

以下代码查找 .json 并创建具有{相同前缀}.sh 的相同内容文件

find /folder -name "*.json"  -exec bash -c 'cat "$1" > "${1%.*}.sh"' _ {} \;

关于linux - 基于目录中现有文件创建文件的shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754924/

相关文章:

linux - 使用 rpmrebuild 修改 rpm

linux - 在linux内核层面,如何读写硬盘的一个扇区

java -/usr/bin/ld : cannot find -ljvm:during compiling jni project

bash - 按时间戳排序 `.bash_history`

linux - 嵌套的 bash 命令引用问题

c - Linux 中的进程 : Getting every child process to sleep a Random number of seconds

regex - 找到一个模式并替换整行&找到一个模式并插入到后面

linux - 如何打印仅包含字母的单词?

bash - shell : get function's body by it's name

linux - 检查条件是否为假