如何将输出匹配模式的一部分通过管道传递到文件中,其余部分留给stdout?

安东·K

让我们a.out将其作为产生大量消息到stdout的程序,例如:

$ ./a.out

A: abc
B: xyz
A: aaa
A: bbb
B: zzz
C: fff
...

我需要的是将输出分成单独的文件,一个应包含带有A:前缀的,第二个包含B:以此类推,因此将不匹配任何模式的行留给stdout。

当然,可以重定向的整个输出a.out,然后将其重定向grep但是,如果输出文件将使用大量磁盘空间,则可能没有足够的空间来存储grep结果。

最好有一些partial-redirect可以在这种情况下使用的命令:

./a.out | partial-redirect ^A: a.txt | partial-redirect ^B: b.txt | partial-redirect ^C: c.txt > rest.txt

这样的命令是否存在并且通用,或者您应该自己实现一些任务来解决此任务?

兴奋剂
awk -F':' '$1 ~ "[AB]" { print > $1 } $1 !~ "[AB]" { print > "otheroutput" } ' input

或者,对于一般情况,将基于第一个字段拆分整个输入:

awk -F':' '{ print > $1 }' input

正在使用:

$ cat input
A: abc
B: xyz
A: aaa
A: bbb
B: zzz
C: fff
$ awk -F':' '$1 ~ "[AB]" { print > $1.txt } $1 !~ "[AB]" { print > "otheroutput" } ' input
$ cat A
A: abc
A: aaa
A: bbb
$ cat B
B: xyz
B: zzz
$ cat otheroutput
C: fff

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何重置一部分 Redux,但保留其余部分?

替换powershell中变量的一部分而不替换其余部分?

作为VSTS构建管道的一部分,如何将文件复制到MVC应用程序的根目录中?

如何将json的一部分存储到另一个json文件中

如何将脚本生成的文本复制到输出文件中的另一部分?

如何将 javascript 对象的一部分存储到变量中?

如何将字符串的一部分存储到字典中

用Python的方式将列表分为第一部分和其余部分?

如何读取文件的一部分并将其余部分写入另一个文件?

如何读取和处理文件的一部分并将其余部分写入另一个文件?

如何使用 Bash 删除一行的一部分并保留其余部分?

如何使用neo4j密码匹配路径,并在不存在一部分的情况下返回其余部分

UNIX如何将输入文件的基础用作输出文件的一部分

连接数组的一部分,其余部分保留在Javascript中

如何将 url 的一部分与 c# 匹配

将变量从代码的一部分传递到另一部分

如何将列表的一部分传递给不同的变量?

VBA Word如何将数组的一部分传递给子例程?

如何防止选择删除输入中字符串的一部分,同时仍允许用户编写其余部分

如何从Mouseevents中掩盖JComponent的一部分?例如,JButton的某些区域不起作用,其余部分就可以了

仅将输出的一部分存储到shell变量中

如何将存储库的一部分复制到Artifactory?

如何将 BMP 的一部分复制到画布上?

如何创建两个部分,一个部分具有全屏图像,另一部分具有页面的其余部分

C++ 如何将二进制文件的一部分复制到新文件中?

如何将文本文件的内容添加为ELF文件中的一部分?

如何将字符串的一部分从列复制到熊猫的新列中

如何将 img 垂直居中到 div 中,该 div 是 flex 容器的一部分

如何将Java源文件的一部分转换为Kotlin?