首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在awk中OFS和FS是不同的?

问为什么在awk中OFS和FS是不同的?
EN

Stack Overflow用户
提问于 2011-09-21 20:33:39
回答 4查看 1.3K关注 0票数 0

在awk中,至少在gawk中,字段分隔符FS是空格(制表符或空格),这是合理的。但是,默认情况下,输出字段分隔符OFS设置为空格。我希望是tab,因为tab更适合作为UNIX文本文件中的列分隔符,而不是空格(根据我的经验)。让它成为一个空间背后的理由是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-21 20:48:39

带Tab键的文本在不同的文本编辑器中看起来可能不同。因为他们中的许多人都有“如何解释制表符”的选项,例如4个空格,8个空格等,但带空格的文本看起来到处都是一样的。

此外,一些对缩进敏感的编程语言建议使用空格而不是制表符,例如here。从你的角度来看,这个建议可能也不合理。

如果您希望将空格作为OFS默认值,则可以创建一个别名,例如myawk=awk -v OFS='\t'

票数 2
EN

Stack Overflow用户

发布于 2011-09-21 20:42:37

awk编程语言可能比您对当今任何事实上的Unix标准的直觉都要古老。

话虽如此,默认是非常有意义的,原因与人们反对在源文件中使用制表符进行缩进时经常引用的原因大致相同。

票数 1
EN

Stack Overflow用户

发布于 2012-12-09 06:05:48

在@Kent脚本的基础上,下面是我在输入(F-parmeter)和输出(OFS-parameter)中处理csv和tsv的别名:

代码语言:javascript
复制
# alias to use awk on csv-files
alias awkt='awk -F"\t" -v OFS="\t"'
# alias to use awk on tsv-files
alias awkc='awk -F"," -v OFS=","'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7499791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档