我想知道如何用abc例如长管替换空结果.
所以,如果我过滤一个大的txt文件sed,并grep和其他的东西.有没有办法在这个管道的末尾我替换一个空的结果?因此,如果我在文件中找不到我的模式,我会得到一个abc
我在sh工作,并希望它包含在长管道中而不使用特殊的东西.我试过了:
cat myfile.txt | grep 'blabla.*' | sed 's/^$/abc/g'
和
`cat myfile.txt | grep 'blabla.*' | sed 's//abc/g'`
Run Code Online (Sandbox Code Playgroud)
.
我想你是说如果不grep产生匹配,你想看到"abc".我不知道这是否算作"特殊的东西",但你可以这样做:
grep 'blabla.*' myfile.txt || echo abc
Run Code Online (Sandbox Code Playgroud)
这将在管道中正常工作:
cmd1 | cmd2 | { grep 'blabla.*' || echo abc; } | cmd3 | cmd4
Run Code Online (Sandbox Code Playgroud)
事实上,它也可以很好地将更复杂的逻辑放在管道中,尽管你不经常看到这种风格:
cmd1 |
if grep blabla.*; then : ; else echo abc; fi |
cmd2
Run Code Online (Sandbox Code Playgroud)