我试图编写一个非常简单的bash文件,该文件允许我打开和修改n次file.java。
我想要的修改只是在单个数字的单个(或两个)行中进行的更改。
我尝试使用以下代码来做到这一点:
#!/bin/bash
# commento
touch ic.java
touch input
n=0
for n in "1" "2" "3" "4.5"
do
echo 'import java.io.*;'>ic.java
echo 'import java.util.*;'>>ic.java
echo ' '>>ic.java
echo 'class INITIAL_CONDITION_NORMAL {'>>ic.java
echo 'public static void main (String args[]) {'>>ic.java
echo "$n">>ic.java
n=$(($n+1))
echo '....'>>ic.java
done
java ic.java
如您所见,我必须编写所有文件,并且当我想更改数字时,将"$n"
and和n = $((($ n + 1))放在行中,然后继续到文件末尾并将其放空(java ic.java)。
我知道我可以使用类似的东西:
sed -i 'm-th_row/old/new/' ic.java
但是,如果我想递归地执行此操作(100次),每次不同的new
值(如示例中),我该怎么做?
非常感谢你的帮助 !
只要不new
包含/
(斜杠)字符或任何其他会引起混淆的特殊字符sed
,这就是您需要的模式。
for n in "1" "2" "3" "4.5"
sed -i "m-th_row/old/$n/" ic.java
done
当然,该代码段只会重复修改同一文件,这可能无济于事,但您知道了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句