慕码人2483693
那经典呢?sed解决办法?pat 1和pat 2之间的打印线-包括pat 1和pat 2。sed -n '/PAT1/,/PAT2/p' FILEPAT1和PAT 2之间的打印线-排除PAT1和PAT 2GNUsedsed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p}}' FILE任何sed1sed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p;};}' FILE甚至(谢谢)孙迪普):GNUsedsed -n '/PAT1/,/PAT2/{//!p}' FILE任何sedsed -n '/PAT1/,/PAT2/{//!p;}' FILEPAT1和PAT 2之间的打印线-包括PAT 1,但不包括PAT 2。以下只是范围的开始:GNUsedsed -n '/PAT1/,/PAT2/{/PAT2/!p}' FILE任何sedsed -n '/PAT1/,/PAT2/{/PAT2/!p;}' FILE在pat 1和pat 2之间的打印线-包括pat 2,但不包括pat 1。以下内容仅包括范围结束:GNUsedsed -n '/PAT1/,/PAT2/{/PAT1/!p}' FILE任何sedsed -n '/PAT1/,/PAT2/{/PAT1/!p;}' FILE1关于BSD/MacOSXsed的注意事项这里有这样的命令:sed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p}}' FILE会发出错误:▶ sed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p}}' FILE
sed: 1: "/PAT1/,/PAT2/{/PAT1/!{/ ...": extra characters at the end of p command由于这个原因,这个答案已经被编辑,包括BSD和GNU版本的一行。