Этот ответ применяется, по крайней мере, к GNU, находят.
-name
соответствия с помощью шаблонов оболочки, если Вы хотите сделать regex соответствие использованию -regex
вместо этого:
find . -regex '.*ook[s]?' -type f
-regex
соответствует целому пути с помощью emacs regex. Тип регулярного выражения может быть изменен с -regextype
.
Не удивляйтесь что Ваш regexps с a \n
не соответствуйте: \n
разделитель строки, это не находится в строке. Каждая строка в Вашем файле заканчивается \n
- по определению.* Вы никогда не будете находить a \n
в строке.
Одна возможность состоит в том, что Вы смотрите на файл Windows на Unix, и Ваш таинственный символ \r
(NB нет \r\n
), который Ваш grep не распознает как часть EOL.
Для обнаружения, на что на самом деле похожи строки использовать od -c
.
*Сноска для педантов: Кроме возможно для заключительной строки, и в очень старых системах Mac OS, и т.д., и т.д.
Вместо того, чтобы пытаться сделать это с grep
Вы могли бы хотеть использовать формальный инструмент минификации. Существуют многие. Один такой инструмент cssmin
. Это - порт YUI-компрессора Yahoo. Это находится в репозиториях большинства главных дистрибутивов.
Fedora
$ 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 уменьшает" или "CSS, который уменьшают JS", поднимет много вариантов.
Существует несколько инструментов, которые Вы могли использовать, чтобы сделать это. Восьмеричный дамп (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" является символом новой строки.
0d 0a
который является \r\n
, но по ошибке идентифицированный как пробел grep
. Я просто не знаю, как это вошло в файл. Каждая новая строка \r\n
вместо просто \n
.
– Question Overflow
15.12.2013, 05:12
Можно использовать tr
команда для того, чтобы сделать это, например, cat file | tr -d "\t" > newfile
это удалит вкладки на Вашем файле.
перейдите по этой ссылке для получения дополнительной информации об инструменте TR.man tr
не будет очень полезный для меня
Некоторая интересная часть
\t
который тривиален для удаления. Именно другие невидимые пробельные символы у меня есть проблема при идентификации и удалении.
– Question Overflow
14.12.2013, 07:11
grep
имеет ошибочный\r\n
как пробел. Я просто не понимаю как\r\n
вошедший мой файл CSS, вызываяgedit
для использования этого для всех новых строк, я создал только для этого файла. – Question Overflow 15.12.2013, 05:17