为什么 linux 个 txt 文件中有隐藏列?
Why are there hidden columns in linux txt files?
我无法解释为什么在编辑此文件时会发生这种情况A,
head fileA -n 3
10010 NC_000002.12 161136926 161236175oding
10012629NC_000005.10A2-1136080497 136080596cRNA
10012630NC_000023.1188 145994783q27.3 145994859
head fileA -n 3|cut -f 2
TANK
VTRNA2-1
MIR888
我已经删除并重新生成文件,但仍然发生这种情况
请帮忙
此外,
more fileA|grep "TANK"
10010 NC_000002.12 161136926 161236175oding
是否有部分列被隐藏了?
可能的问题是文本文件中有 backspace
个字符。
这是一个演示:
#include <stdio.h>
int main () {
printf("foo\tTANK\t\b\b\b\b\b\b\b\b\bspace\n");
}
将其编译成名为 test 的可执行文件:
$ ./test
foo space
$ ./test | cut -f1
foo
$ ./test | cut -f2
TANK
$ ./test | cut -f3
space
\b
是一种告诉 C 放入退格符的方法。在你的文件中,所有字符都被保留,包括 TANK 字符。但是在终端显示时,退格字符每退格一个字符,如果再打印其他内容,已经打印的字符将被覆盖。
如果您需要查看包含退格字符等内容的文件的内容,请尝试使用十六进制编辑器查看该文件。它将允许您查看所有详细信息。
或者,使用像 vi 或 gedit 这样的编辑器通常也会显示这些字符。
我无法解释为什么在编辑此文件时会发生这种情况A,
head fileA -n 3
10010 NC_000002.12 161136926 161236175oding
10012629NC_000005.10A2-1136080497 136080596cRNA
10012630NC_000023.1188 145994783q27.3 145994859
head fileA -n 3|cut -f 2
TANK
VTRNA2-1
MIR888
我已经删除并重新生成文件,但仍然发生这种情况 请帮忙
此外,
more fileA|grep "TANK"
10010 NC_000002.12 161136926 161236175oding
是否有部分列被隐藏了?
可能的问题是文本文件中有 backspace
个字符。
这是一个演示:
#include <stdio.h>
int main () {
printf("foo\tTANK\t\b\b\b\b\b\b\b\b\bspace\n");
}
将其编译成名为 test 的可执行文件:
$ ./test
foo space
$ ./test | cut -f1
foo
$ ./test | cut -f2
TANK
$ ./test | cut -f3
space
\b
是一种告诉 C 放入退格符的方法。在你的文件中,所有字符都被保留,包括 TANK 字符。但是在终端显示时,退格字符每退格一个字符,如果再打印其他内容,已经打印的字符将被覆盖。
如果您需要查看包含退格字符等内容的文件的内容,请尝试使用十六进制编辑器查看该文件。它将允许您查看所有详细信息。
或者,使用像 vi 或 gedit 这样的编辑器通常也会显示这些字符。