awk 使用逗号(可选)后跟多个空格作为 FS
我需要做的是解析以下形式的字符串
-option optionArgument, --alternativeNotation 一些文本,没什么兴趣...
我将 FS 设置为
BEGIN {
FS = ",?\ +"
}
但它不起作用...它应该在每个随机数上中断空格(至少一个),前面加一个逗号(可选)。有什么想法吗?
提前致谢,
奥利弗
What I need to do is parse a string of the following form
-option optionArgument, --alternativeNotation Some text, nothing of interest...
I set the FS to
BEGIN {
FS = ",?\ +"
}
but it didn't work... it should break on every random number of blanks (at least one), preceeded by a comma (optional). Any ideas?
Thx in advance,
Oliver
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的 FS 执行您在问题中描述的操作,但空格之前的反斜杠可能是多余的,具体取决于 shell 引用:
您希望字段是什么?
Your
FS
does what you describe in your question, but the backslash before the space might be redundant depending on shell quoting:What do you want the fields to be?
FS = "[,]*[ ]+"
这使得逗号可选,但空格不可选。这会在每个 -option 和 optionArg 中创建一个单独的字段,我相信这是您想要的。
FS = "[,]*[ ]+"
This makes the comma optional but not the space. This creates a separate field out of each -option and optionArg which is what I believe you wanted.
@OP,下次尝试描述你的最终输出是什么。
输出
另外,实际上不需要检查多个空格。只需使用逗号作为分隔符,然后修剪剩余的空格即可。
输出
@OP, next time try to describe what your final output is.
output
Also, there is actually no need to check for multiple blanks. Just use comma as the delimiter and trim the remaining spaces later.
output