2015-10-14 2490 views
2

我试图查看文件的内容,包括在终端中的分隔符。 例如:Linux命令查看原始文件,包括其分隔符

hello\t\tworld\n 
hello\t\tworld\t\tagain\n 

,而不是只:

hello world 
hello world again 

我这样做一次,前一段时间使用两种“sed的”或“AWK” ......我想......但是,我可以现在似乎没有记住它。

感谢您的帮助。

+6

是否'猫-A'(或'猫-vET')为你做这项工作? –

+0

@KarolyHorvath你应该可以从中得出答案。 – hek2mgl

+0

这是不一样的格式,因此这个问题。 –

回答

2

如果在其中打开文件并键入:set list,VI会显示此信息。

例如

$ cat test.txt 
hello   world 
hello   world   again 

在VI中^我是选项卡,$是行提要。

enter image description here

另外像评论状态 - cat -A,会得到相同的输出:

$ cat -A test.txt 
hello^I^Iworld$ 
hello^I^Iworld^I^Iagain$ 
+0

我不使用vi,但猫-A工作正常。这只是一种不同的格式。但是,现在工作。谢谢! – wi3o

2

可以使用od命令,

od -t a input_file | awk '{$1=""}1' | 
awk 'BEGIN{RS="[ \t\n]+";ORS=""; 
    d["sp"]=" "; d["nl"]="\\n\n"; d["ht"]="\\t"; d["cr"] = "\\r"; 
}length($0)>1{$0=d[$0]}1' 

input_file

 
hello  world 
hello  world again 

你,

 
hello\t\tworld\n 
hello\t\tworld again\n 
0

sed或许应该工作,你可以修改它来搭配并显示无论是你想看到(例如空格)。棘手的部分是匹配换行符,因为sed使用换行符来划分流,它已经在你进入之前被使用。因此,沿着sed 's/\n/\\n/'的方向匹配将会失败,您可以通过匹配\\n上的结尾字符和大头贴来推测换行符。

sed 's/$/\\n/;s/\t/\\t/g;s/ \{4\}/\\t/g' file

1

这可能为你工作(GNU SED):

sed -n l0 file 

这将显示出任何标签和换行符将$被替换。

如果你想看到换行符\n然后啜整个文件:

sed -n '1h;1!H;$!d;x;l0' file