linux - 为什么linux txt文件中有隐藏列?

标签 linux file multiple-columns edit hidden

我无法解释为什么在编辑此文件时会发生这种情况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 这样的编辑器通常也会显示这些字符。

关于linux - 为什么linux txt文件中有隐藏列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980477/

相关文章:

linux - 在 linux 系统中启用 WiFi dongle 时出错

linux - android studio avd 中的模拟器在 Pop 中非常慢! _os

python - 如何在 pyspark 中对具有动态列的表进行透视

jquery - 按钮在等高列底部对齐

php - 无法使用此命令安装 oro 平台 sudo php app/console oro :install --env ="dev"

c - 如何创建一个函数来解密加密文件?

ruby-on-rails - 有没有一个rails方法可以循环遍历上传文件的每一行? "each_line"是一个IO方法,但它不起作用

r - Shinytest中的错误。无法检测到我的脚本是R文件

html - 如何更改移动布局上的 bootstrap 4 列顺序?

linux - 如何创建仅具有某些扩展名但忽略服务器生成的具有类似扩展名的文件的 tar 文件?