我有一个文件,我想在其中替换文件中第三行到最后一行中最后一次出现的字符串。我有一个文件,如:
analyze_compression_testpoints -log no -TESTMODE FULLSCAN
-EXPERIMENT <br /> azul_rrfa -outputfile
./testresults/testinsertion.file<br />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我要替换<br />
与</font>
只在倒数第三行。我在用:
sed -i "s|\(.*\)<br />\$|\1</font>|g"
Run Code Online (Sandbox Code Playgroud)
但它正在替换每一行中的所有最后一次出现,但我只想要最后一次出现的文件,而不是每一行。
与sed
:
tac file | sed '3 s|<br />$|</font>|' | tac
Run Code Online (Sandbox Code Playgroud)
与ed
:
echo -e '$-2s/<br \/>$/<\/font>/\nw' | ed -s file
Run Code Online (Sandbox Code Playgroud)
与vim
:
:$-2 s!<br />$!</font>!
Run Code Online (Sandbox Code Playgroud)