UNIX — универсальная среда программирования | страница 21
До сих пор мы употребляли имена файлов, даже не упоминая о том, что является законным именем файла. Теперь пора ввести несколько правил. Во-первых, имя файла ограничено 14 символами.[2] Во-вторых, хотя и можно использовать практически любой символ в имени файла, здравый смысл подсказывает, что следует употреблять только видимые символы и избегать применения символов, несущих определенную смысловую нагрузку. Например, как вы уже видели, в команде >ls флаг >-t означает список, упорядоченный по времени, так что если у вас есть файл с именем >-t, вам придется очень постараться, чтобы он попал в список. (Как, действительно, это сделать?) Кроме знака "минус", есть и другие символы, имеющие специальный смысл в первой позиции, однако пока вы не освоите систему, лучше использовать на этом месте только буквы, цифры, точку и символ подчеркивания. (Точка и символ подчеркивания по традиции употребляются для разбития имени файла на части, как в случае >special.save). Наконец, не забывайте о различии прописных и строчных букв: >junk, >JUNK и >Junk — разные имена файлов.
Поскольку у нас уже есть основные средства создания файлов, выдачи списка имен файлов, печати их содержимого, мы можем рассмотреть и другие команды обработки файлов. Чтобы изложение было конкретным, будем использовать файл >poem, который содержит известное стихотворение Августа Де Моргана. Создадим его с помощью редактора >ed:
>$ ed а
>Great fleas have little fleas
> upon their backs to bite 'em,
>And little fleas have lesser fleas,
> and so ad infinitum.
>And the great fleas themselves, in turn,
> have a greater fleas to go on;
>While these again have greater still,
> and greater still, and so on.
>.
>w poem 263
>q
>$
Начнем с первой команды, которая подсчитывает число строк, слов и символов в одном или нескольких файлах и называется >wc по одной из ее функций — подсчета слов ("word counting"):
>$ wc poem
>8 46 263 poem
>$
т.е. в файле >poem восемь строк, 46 слов и 263 символа. Определение "слова" весьма просто — любая последовательность символов, не содержащая пробела, символа табуляции или перевода строки. Команда >wc произведет подсчет более чем в одном файле (и сообщит итог) и при необходимости "умолчит" о любом счетчике, см. >wc(1).
Вторая команда, >grep, отыскивает в файлах строки, которые подходят под шаблон (ее имя происходит от имени команды редактора >ed g/regular-expression/p, которая объясняется в приложении 1). С помощью этой команды можно найти слово