sed:在结果中获得两个额外的字符
sed: Getting Two Extra Characters in the Results
如何显示 sed 结果的下两个字符(通配符然后停止结果)?
echo 'this is a test line' | sed 's/^.*te*/te../'
期待中
测试
实际结果te..行
您可以使用
sed -n 's/.*\(te..\).*//p' <<< 'this is a test line'
参见online demo。这里,
-n
- 抑制默认行输出
.*\(te..\).*
- 匹配任何零个或多个字符,然后捕获到第 1 组 te
和任何两个字符,然后匹配字符串的其余部分
</code> - 用组 1</li> 的值替换整个匹配项
<li><code>p
- 只打印替换的结果。
GNU AWK
解决方案
echo 'this is a test line' | awk 'BEGIN{FPAT="te.."}{print }'
输出
test
说明:通知 AWK 使用 FPAT
(字段模式)检测像 te..
这样的字段,然后只打印第一个字段。
(在 GNU Awk 5.0.1 中测试)
如何显示 sed 结果的下两个字符(通配符然后停止结果)?
echo 'this is a test line' | sed 's/^.*te*/te../'
期待中 测试
实际结果te..行
您可以使用
sed -n 's/.*\(te..\).*//p' <<< 'this is a test line'
参见online demo。这里,
-n
- 抑制默认行输出.*\(te..\).*
- 匹配任何零个或多个字符,然后捕获到第 1 组te
和任何两个字符,然后匹配字符串的其余部分</code> - 用组 1</li> 的值替换整个匹配项 <li><code>p
- 只打印替换的结果。
GNU AWK
解决方案
echo 'this is a test line' | awk 'BEGIN{FPAT="te.."}{print }'
输出
test
说明:通知 AWK 使用 FPAT
(字段模式)检测像 te..
这样的字段,然后只打印第一个字段。
(在 GNU Awk 5.0.1 中测试)