如果有人问/回答了这个问题,我很抱歉;我无法通过搜索找到答案。你知道吗
我有一个很长的文本文件,只有一小部分行的第4列有一个值,这就是我关心的。我怎么能只打印那些行呢?你知道吗
以下是我的数据:
gi|254160123|ref|NC_012967.1| 585236 C
gi|254160123|ref|NC_012967.1| 585237 C
gi|254160123|ref|NC_012967.1| 585238 A
gi|254160123|ref|NC_012967.1| 585239 C 4
gi|254160123|ref|NC_012967.1| 585240 A
gi|254160123|ref|NC_012967.1| 585241 A
gi|254160123|ref|NC_012967.1| 585242 C
gi|254160123|ref|NC_012967.1| 585243 T 16
gi|254160123|ref|NC_012967.1| 585244 G 6
gi|254160123|ref|NC_012967.1| 585245 C 2
gi|254160123|ref|NC_012967.1| 585246 G 3
gi|254160123|ref|NC_012967.1| 585247 C 9
我只想打印第四列中有值的行(本例中的第4、8、9、10、11、12行)。你知道吗
由于您还没有发布数据文件的示例,我将给您一个关于如何使用awk实现特定列提取的通用示例。。。您可以使用gawk(gnu-awk)作为
这个概念很相似,假设你有一个文件(BBS列表)
如果要打印第一列记录为“EXACT”且与“foo”匹配的第二列
你可以用
但由于他们是fooey,macfoo,sabafoo等,你不会得到任何输出。你知道吗
这里是模式匹配,而不是你可以使用的“foo”,模式匹配/foo/
结果将是fooey,foot,macfoo和sabafoo
示例(犹他大学)
因此,为了隔离空值
但是在我的系统上进行了研究和测试之后,我很困惑,我不能用awk隔离空值。它不能区分空值和空值空间。空间问题是你必须特别提到分隔符。最好的方法是使用选项卡作为字段分隔符。所以你可以用
我想这应该能解决你的困境。你知道吗
既然您要求用Python提供一个解决方案,那么这里有一个。它读取文件的每一行,然后将其拆分为空白列;如果第四行(索引3)后面的列为空,则不打印。你知道吗
在处理列式文件时,您可能会发现^{} module 更健壮,但对于所述的问题来说,它有点过分,并且不保留输入的格式。你知道吗
只需使用awk打印包含四个字段的行:
默认情况下,awk忽略前导空格和尾随空格(在公共区域设置中,这意味着“空格和制表符”)。因此,您所需的记录将被视为具有四个字段(^{><;tab>;^{><;tab>;^{><;tab>;<;tab>;),而其他字段将具有三个字段(^{>^{><;tab>;>><;tab>;)。如果未指定“操作”,则默认操作是打印当前行。你知道吗
相关问题 更多 >
编程相关推荐