Gedit
如何在 gedit 上辨識和刪除不可見的空白字元?
我想刪除我的 css 文件中不必要的空格。我正在使用帶有以下命令的 grep:
$ grep -rn "[[:space:]]$"
令人驚訝的是,它在文件中的每一行都返回了一個命中。我搜尋 的實例
\t\n
,\r\n
但\n
找不到任何東西。如何辨識不可見的空白並將其刪除?
不要驚訝於您的正則表達式與 a
\n
不匹配: The\n
是行分隔符,它不在行中。根據定義,文件中的每一行都以\n
– 結尾。* 你永遠不會\n
在一行中找到一個。一種可能性是您正在查看 Unix 上的 Windows 文件,而您的神秘角色是
\r
(NB not\r\n
),您的 grep 沒有將其辨識為 EOL 的一部分。要了解您的線條的實際外觀,請使用
od -c
.*吹毛求疵者的腳註:可能除了最後一行,以及非常舊的 Mac OS 系統等,等等。
與其嘗試這樣做,不如
grep
使用正式的迷你小說工具。有許多。一種這樣的工具是cssmin
. 這是雅虎 YUI 壓縮器的一個埠。它位於大多數主要發行版的儲存庫中。軟呢帽
$ sudo yum install python-cssmin
範例執行
$ cssmin < doc.css > doc_compressed.css $ ls -l | grep css -rw-rw-r--. 1 saml saml 2723 Dec 13 23:35 doc_compressed.css -rw-r--r--. 1 saml saml 4626 Dec 13 23:34 doc.css
該文件的內容如下所示:
$ head doc_compressed.css a:link{text-decoration:none}a:visited{color:#7F7FFF;text-decoration:none}a:hover{text-decoration:underline}a:active{color:white;background-color:blue;text-decoration:underline}body{background-color:white;color:black;font-size:100.01%}img{display:block;border-width:0}h1{background-color:#900;font-size:x-large;font-weight:bold;color:#ebebeb;padding:.3em 5px .5em 5px;m....
壓縮機
如果這個不適合您的需求,還有很多其他選擇。看看這篇 AskUbuntu 文章,標題為:可以通過終端執行的縮小工具。
搜尋“CSS minify”或“CSS JS minify”也會有很多選擇。
辨識奇怪的字元
您可以使用多種工具來執行此操作。八進制轉儲 (
od
) 或hexdump
初學者。我會去的hexdump
。例子
$ head -10 doc.css | hexdump -C 00000000 0a 2f 2a 20 47 6c 6f 62 61 6c 20 73 74 79 6c 65 |./* Global style| 00000010 73 2e 20 2a 2f 0a 0a 61 3a 6c 69 6e 6b 20 7b 0a |s. */..a:link {.| 00000020 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f | text-decoratio| 00000030 6e 3a 20 6e 6f 6e 65 3b 20 20 20 20 20 20 0a 7d |n: none; .}| 00000040 0a 0a 61 3a 76 69 73 69 74 65 64 20 7b 0a 20 20 |..a:visited {. | 00000050 63 6f 6c 6f 72 3a 20 23 37 46 37 46 46 46 3b 0a |color: #7F7FFF;.| 00000060 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f | text-decoratio| 00000070 6e 3a 20 6e 6f 6e 65 3b 20 20 20 20 0a |n: none; .| 0000007d
在上面的輸出中,這些行末尾的點是空格:
$ head -10 doc.css /* Global styles. */ a:link { text-decoration: none; } a:visited { color: #7F7FFF; text-decoration: none;
例如:
00000030 6e 3a 20 6e 6f 6e 65 3b 20 20 20 20 20 20 0a 7d |n: none; .}|
空格是十六進製字元“0x20”。“0x0a”是換行符。