2015-10-14 2488 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