如何将 AWK 输出传递给变量?
我有一个小的 bash 脚本,通过使用关键字来 grep/awk 段落。
但是添加额外的代码后: set var = "(......)"
它只打印一个空行而不是段落。
所以我想问是否有人知道如何正确地将awk输出传递到变量中进行输出?
我的代码:
#!/bin/sh
set var = "(awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/FileHeader/' /root/Desktop
/logs/Default.log)"
echo $var;
谢谢!
I have a small bash script that greps/awk paragraph by using a keyword.
But after adding in the extra codes : set var = "(......)"
it only prints a blank line and not the paragraph.
So I would like to ask if anyone knows how to properly pass the awk output into a variable for outputting?
My codes:
#!/bin/sh
set var = "(awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/FileHeader/' /root/Desktop
/logs/Default.log)"
echo $var;
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用命令替换捕获进程的输出。
关于 shell 脚本编写的一些一般建议:(
Use command substitution to capture the output of a process.
some general advice with regards to shell scripting:
`COMMAND`
内,或者放在前面有美元符号的一对括号内,$(COMMAND)
。set
并且=
前后不能有空格。试试这个:
`COMMAND`
or, in a pair of parentheses preceded by a dollar sign,$(COMMAND)
.set
and you can't have spaces before and after the=
.Try this:
你给了我这个杀死进程的想法:)。只是铬到任何你想杀死的进程。
试试这个:
You gave me the idea of this for killing a process :). Just chromium to whatever process you wanna kill.
Try this:
每当您看到 grep 通过管道传输到 awk 时,您都可以删除 grep。对于上述内容,
awk 可以轻松替换任何文本命令,如 cut、tail、wc、tr 等,特别是彼此相邻的多个 grep。 IE
anytime you see grep piped to awk, you can drop the grep. for the above,
awk can easily replace any text command like cut, tail, wc, tr etc. and especally multiple greps piped next to each other. i.e
使用打包器模板变量时,尝试创建来自Vault/Hashicorp的变量,如下所示:
您可以使用
grep ^user
进行相同的操作Try to create a variable coming from vault/Hashicorp, when using packer template variables, like so:
You can to the same with
grep ^user