【发布时间】:2012-02-03 18:05:33
【问题描述】:
我正在编写一个可供其他人使用的 shell 脚本,并且可能会接收可疑字符串。它基于 awk,因此作为一项基本的弹性措施,我希望 awk 输出以空字符结尾的字符串 - 将从 awk 接收数据的命令因此可以避免包含空格或不常见的字符串的一定量的破坏-英文字符。
不幸的是,从基本的awk 文档中,我不知道如何告诉 awk 打印以 ASCII null 而不是换行符结尾的字符串。如何告诉 awk 我想要以 null 结尾的字符串?
可能使用的 awk 版本:
[user@server1]$ awk --version
awk version 20070501
[user@server2]$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
[user@server3]$ awk -W version
GNU Awk 3.1.7
几乎是awk 的整个家族。如果我们必须整合一个版本,它可能是 GNU Awk,但欢迎所有版本的答案,因为我可能必须让它在所有这些 awk 上工作。哦,遗留脚本。
【问题讨论】:
-
迄今为止我找到的最佳指南:sandrotosi.blogspot.com/2011/09/… - 但这还不是一个完整的答案,而且随机 blogspot 博客的 SEO 效果也比 SO 少,所以一个好的 SO 答案会很有用给更多人。
-
凯文:想把它变成答案吗?
-
对不起,使用
\0作为输入分隔符。我无法让awk将其用作输出分隔符。 -
对,因为
FS和ORS不同。