Content #
测试命令会根据先前替换命令的结果跳转到某个label处,而不是根据address进行跳转。
如果替换命令成功匹配并完成了替换,测试命令就会跳转到指定的标签。如果替换命令未能匹配指定的模式,测试命令就不会跳转。
测试命令的格式:
[address]t [label]
在没有指定label的情况下,如果测试成功,sed会跳转到脚本结尾。
测试命令提供了一种低成本的方法来对数据流中的文本执行基本的if-then语句。如果需要做二选一的替换操作,也就是执行这个替换就不执行另一个替换,那么测试命令可以助你一臂之力(无须指定label): $ sed ‘{s/First/Matched/ ; t > s/Line/Replacement/} > ’ data2.txt Header Replacement Matched Data Line Second Data Replacement End of Data Replacements $ 第一个替换命令会查找模式文本First。如果匹配了行中的模式,就替换文本,而且测试命令会跳过后面的替换命令。如果第一个替换未能匹配,则执行第二个替换命令。
From #
Linux命令行与shell脚本编程大全