我正在尝试创建一个基本上使用var passwordInput = $('[name=newPassword]').val();
var tests = {
1:/[a-z]/.test(passwordInput),
2:/[A-Z]/.test(passwordInput),
3:/[0-9]/.test(passwordInput),
4:passwordInput.length >= 8
};
for(var i=1; i<=4; i++)
$('.strength-check__rule[data-index=' +i+ ']')
[ tests[i] ? 'addClass' : 'removeClass' ]('check-rule--pass');
来查找网站的 IP 的小脚本,然后将其传递给 sed / < strong> awk / grep 来替换一行。这是当前文件的样子:
dig +short
所以,基本上,我想在文本文件中搜索'#Server'行,然后用从挖掘>获取的 IP 地址替换它下面的两行。强>
我理解 sed 的一些语法,但我真的很难弄清楚如何替换匹配下面的两行。非常感谢任何帮助。
答案 0 :(得分:1)
根据OP,它不是100%清楚地确定需要替换的地方,但是在这里使用GNU sed 和<强>的bash 即可。在&#34; 3 &#34;之后更换两行。使用标准输入:
echo Hoot Gibson | sed -e '/3/{r /dev/stdin' -e ';p;N;N;d;}' <(seq 7)
输出:
1
2
3
Hoot Gibson
6
7
注意: sed 的 r 命令是不透明的文档(无论如何都在Linux中)。有关 r 的更多信息,请参阅:
&#34; 5.9。 &#39; r&#39;命令不是将文件插入文本&#34;在此sed FAQ。
答案 1 :(得分:0)
这是awk
中的方式:
newip=12.34.56.78
awk -v newip=$newip '{
if($1 == "#Server"){
l = NR;
print $0
}
else if(l>0 && NR == l+1){
print newip
}
else if(l==0 || NR != l+2){
print $0
}
}' file > file.tmp
mv -f file.tmp file
说明:
$newip
传递给awk
#Server
,请l
=当前行号。#Server
之后的一行,则打印新的IP。#Server
之后的两行,则打印该行。