#!/bin/bash
declare -i counter=1
declare -i var=1
while read line
do
echo $line >> newUpdateScript.sql
counter=$(( $counter + $var ))
echo $counter
if [ $counter -eq 50 ]; then
echo "commit;" >> newUpdateScript.sql
counter=$var
fi
done < UpdateScript.sql
echo "commit;" >> newUpdateScript.sql
这个脚本是逐行读取文件“UpdateScript.sql”并写入新文件,每写完50行后,程序追加一个“commit”。然后继续复制其余部分并附加最终的“提交”;走向终点;
然而不是附加所需的“提交”;在每50行之后,它在50行之后,然后在接下来的4行之后。
示例输出:
Line 49
commit;
Line 51
Line 52
Line 53
commit;
Line 54
有人可以帮我调试吗?
答案 0 :(得分:2)
如果您想在每50行之后添加commit;
,请使用此
sed '50~50{s/.*/&\ncommit;/;}' yourfile.sql
要影响文件中的更改,
sed -i.bak '50~50{s/.*/&\ncommit;/;}' yourfile.sql
下面,
-i.bak
- 将使用给定的扩展名(即.bak
)备份yourfile.sql。