And*_*rew 4 awk vi text-processing bash-script
假设我有十个 bash shell 脚本:script1.sh, script2.sh, ..., script10.sh. 最初,所有十个文件都是相同的。
现在,我想对每个脚本进行两个更改:
在每个文件中,我想更改一个特定的行(比如第 8 行)——也就是说,删除第 8 行中的任何内容并将其替换为我指定的“常量”字符串,例如"This is line 8." This is similar to this question,但他们想取代"AAA"有"BBB",而我想,以取代8号线(不管它是什么)"This is line 8."。
在每个文件中,我想更改另一行(比如第 21 行)并将其替换为我指定的“变量”字符串。例如,在script1.sh我想将第 21 行更改为"XYZ"; 在script2.sh我想将第 21 行更改为"PQR"; 并且script3.sh我想将第 21 行更改为"ABC". 本质上,这只是对上面(1) 中函数的多次调用——除了我将在一个单独的文件中而不是在所有文件中进行更改,并且我指定了十个不同的字符串而不是一个。所以为了在这里获得(2),也许我会用不同的参数调用(1)十次不同的时间。
我感兴趣的是使用常用的Linux程序类似的解决方案bash,vi,awk,gawk,等。
for file in f1 f2; do
sed -i '8s/^.*$/foo/' "$file"
done
Run Code Online (Sandbox Code Playgroud)