首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gawk简单程序的差异

gawk简单程序的差异
EN

Stack Overflow用户
提问于 2011-03-01 02:08:20
回答 1查看 139关注 0票数 1

给定以下输入:

代码语言:javascript
复制
 SQ   SEQUENCE   365 AA;  40909 MW;  78539C59DB8B1DFC CRC64;
      MAVMAPRTLV LLLSGALALT QTWAGSHSMR YFYTSVSRPG RGEPRFIAVG YVDDTQFVRF
      DSDAASQRME PRAPWIEQEG PEYWDRNTRN VKAQSQTDRV DLGTLRGYYN QSEAGSHTIQ
      MMYGCDVGSD GRFLRGYRQD AYDGKDYIAL KEDLRSWTAA DMAAQTTKHK WEAAHVAEQW
      RAYLEGTCVE WLRRYLENGK ETLQRTDAPK THMTHHAVSD HEATLRCWAL SFYPAEITLT
      WQRDGEDQTQ DTELVETRPA GDGTFQKWVA VVVPSGQEQR YTCHVQHEGL PKPLTLRWEP
      SSQPTIPIVG IIAGLVLFGA VITGAVVAAV MWRRKSSDRK GGSYSQAASS DSAQGSDVSL
      TACKV

我需要加入从5个空格开始的行。下面这个简单的gawk命令首先过滤空格开头的行,另一个去掉空格,它就像预期的那样工作了(我知道有很多方法可以做到这一点,我现在正在学习gawk ):

代码语言:javascript
复制
gawk /^"     "/ input | gawk '{ gsub (" ", "", $0); print }'

我的问题是,如果我将这两个命令合并为一个命令,为什么它不打印任何内容。我敢肯定这是一个语法问题:

代码语言:javascript
复制
gawk '/^"     "/ { gsub (" ", "", $0); print }' input
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-07 02:54:23

在单行版本中,从您的模式中删除dbl-引号字符。

在模式的正则表达式中,每个字符都被认为是“必须存在的”,并且由于整个命令都用单引号引起来,所以shell不会去掉双引号。

代码语言:javascript
复制
   gawk '/^     / { gsub (" ", "", $0); print }' input

(仅供参考:在unix文本编辑术语中,join通常被认为是“删除回车符,并使文本在一行上继续”。)

我希望这能帮到你!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5145786

复制
相关文章

相似问题

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