对于实验室,我编写了一个使用awk做一些东西的shell脚本。重读实验室的指示,我似乎应该编写一个自包含的awk脚本。我正在努力将我的bash脚本翻译成awk,现在我遇到了问题:
我想将awk命令的输出保存到新文件,然后我想将该输出用作另一个awk命令的输入。
在我的bash脚本中,我有这个:
awk '/Blocked SPAM/' maillog > spamlog
cat spamlog | awk '{print $0}' RS=' '
它从maillog中获取包含字符串“Blocked SPAM”的所有行,并将其保存到名为spamlog的新文件中。然后它打开spamlog并用新行替换每个空格字符''。
对于我的awk脚本,maillog是从shell传递给脚本的文件。我尝试编写类似的代码:
/Blocked SPAM/ > spamlog`
-f spamlog {print $0} RS=' '
由于我无法为自包含的awk脚本找到有用的资源,所以我真的不知道我在用awk脚本做什么。
答案 0 :(得分:2)
awk '/Blocked SPAM/{ print > "spamlog"; gsub( " ","\n"); print }' maillog
就个人而言,我更喜欢直接从shell脚本调用它,但你可以通过编写以下内容轻松地使它成为awk脚本:
#!/usr/bin/awk -f
/Blocked SPAM/{ print > "spamlog"; gsub( " ","\n"); print }
以'maillog'作为参数调用该脚本。