给定以下输入:
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 ):
gawk /^" "/ input | gawk '{ gsub (" ", "", $0); print }'我的问题是,如果我将这两个命令合并为一个命令,为什么它不打印任何内容。我敢肯定这是一个语法问题:
gawk '/^" "/ { gsub (" ", "", $0); print }' input发布于 2011-03-07 02:54:23
在单行版本中,从您的模式中删除dbl-引号字符。
在模式的正则表达式中,每个字符都被认为是“必须存在的”,并且由于整个命令都用单引号引起来,所以shell不会去掉双引号。
gawk '/^ / { gsub (" ", "", $0); print }' input(仅供参考:在unix文本编辑术语中,join通常被认为是“删除回车符,并使文本在一行上继续”。)
我希望这能帮到你!
https://stackoverflow.com/questions/5145786
复制相似问题