UNIX管道命令异常:sed处理结果被忽略,仅执行head命令
管道命令失效问题修复:sed替换后head未生效
错误原因
你在每一步命令后都指定了文件名street,这会让sed和head直接读取原文件,完全忽略管道传递的前序处理结果,导致替换操作的效果根本没传到后续步骤里。
正确命令
只需要在第一个sed后指定原文件名,后续命令通过管道接收前序输出即可:
sed 's/[n]d/nd STREET/g' street | sed 's/[r]d/rd STREET/g' | head -n 9
效果说明
执行正确命令后,第一个sed会处理street文件中的nd(比如2nd),替换为nd STREET;第二个sed处理rd(比如3rd),替换为rd STREET;最后head会接收两次替换后的内容,输出前9行,你就能看到替换后的结果了。
内容的提问来源于stack exchange,提问作者Jorge de Paula Jr
相关产品推荐
相关产品推荐

