我有两个文件:
其中<transaction>
是id+sequancial
(id1
,id2
... idn
)
我想将此结构(.json +文件夹)填充为n。我的意思是:
我想拥有id1.json
和id1
文件夹,还有id2.json
和id2
文件夹... idn.json
和idn
文件夹
反正有(shell脚本)填充此内容吗?
那会是这样的:
for (i=0,i<n,i++) {
copy "id" file to "id+i" file
copy "id" folder to "id+i" folder
}
有什么想法吗?
答案 0 :(得分:1)
您的shell语法已关闭,但此后应该很简单。
#!/bin/bash
for((i=0;i<$1;i++)); do
cp "id".json "id$i".json
cp -r "id" "id$i"
done
这期望 n 的值作为脚本的唯一参数(在$1
的脚本内部可见)。
C风格的for((...))
循环仅适用于Bash,不适用于sh
。
正确的生产脚本还会检查它是否以预期的格式(单个正数)接收到预期的参数,但是当您了解更多信息时,您可能希望解决此类复杂问题。
答案 1 :(得分:0)
此外,这是与sh
一起使用的版本:
#!/bin/sh
test -e id.json || { (>&2 echo "id.json not found") ; exit 1 ; }
{
seq 1 "$1" 2> /dev/null ||
(>&2 echo "usage: $0 transaction-count") && exit 1
} |
while read i
do
cp "id".json "id$i".json
cp -r "id" "id$i"
done