如何将输出文件从 AWK 脚本传递到 cat 中的参数?

发布于 2024-10-06 07:14:45 字数 186 浏览 2 评论 0原文

我希望将 file2 与 file3 连接起来,而不将 file2 保存在磁盘中。

awk '...{print}' file1 > file2 

cat file2 file3 > file4 

我怎样才能在不保存file2的情况下做到这一点?

感谢您的帮助

I wish to concatenate file2 with file3 without saving file2 in the disk.

awk '...{print}' file1 > file2 

cat file2 file3 > file4 

How can I do it without saving file2?

Thank you for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

躲猫猫 2024-10-13 07:14:45

你可以使用子shell

(awk '...{print}' file1; cat file3) > file4

You could use a subshell

(awk '...{print}' file1; cat file3) > file4
春夜浅 2024-10-13 07:14:45

我更喜欢 @Peter 的回答,但根据您的 shell (bash/zsh/...),您可以使用进程替换:

cat <(awk ...) file3 > file4

I prefer @Peter's answer, but depending on your shell (bash/zsh/...), you could use process substitution:

cat <(awk ...) file3 > file4
不再让梦枯萎 2024-10-13 07:14:45

您还可以仅使用 Awk:

awk FNR file1 file3> file4

这将连接 file1file3 并将其保存到 file4

You can also use just Awk:

awk FNR file1 file3> file4

This will concenatefile1 and file3 and will save it to file4

临风闻羌笛 2024-10-13 07:14:45

您可以在没有子 shell 的情况下执行此操作:

awk '...{print}' file1 | cat - file3 > file4 

甚至:

awk 'FNR!=NR {print;next} ... {do_stuff}' file1 file3 > file4

这将导致 file1 由 do_stuff 处理,而 file3 将直接传递。

You can do it without a subshell:

awk '...{print}' file1 | cat - file3 > file4 

or even:

awk 'FNR!=NR {print;next} ... {do_stuff}' file1 file3 > file4

That will cause file1 to be processed by do_stuff and file3 will be passed straight through.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文