Яким має бути ім’я файлу?

До цих пір ми використовували імена файлів, не обговорюючи, якими вони взагалі можуть бути, так що тепер прийшов час навести кілька правил По-перше, довжина імені файлу обмежена 14 сімволамі1

По-друге, хоча практично всі символи дозволені в іменах фай лов, здоровий глузд підказує, що розумніше дотримуватися відображуваних символів і по можливості уникати символів, які мо-

гут мати інше значення Наприклад, в команді ls, розглянутої ра-

неї, ls-t означає виведення списку, упорядкованого за часом Так що

1 Сучасні версії операційних систем сімейства UNIX дозволяють привласнювати файлам і каталогам імена, довжина яких сягає 255 символів – Прямуючи науч ред

якщо дати файлу імя-t, важко буде домогтися його виведення по імені (До речі, як це зробити) Крім знака мінус на початку слова є й інші символи зі спеціальним значенням Щоб уникнути непорозумінь, поки не розберетеся в усьому досконально, краще обмежитися буквами, цифрами, крапками та знаками підкреслення (Точками і символами підкреслення прийнято розділяти імя файлу на частини, як в прикладі про precioussave) І останнє – не забудьте про те, що регістр також має значення: junk, Junk і JUNK – це три різних імені

Кілька корисних команд

Тепер, коли нам відомі основи створення файлів, перегляду їхніх імен і виведення їх вмісту, вивчимо ще півдюжини команд, що займаються обробкою файлів

Щоб конкретизувати обговорення, будемо використовувати файл з імям poem, який містить знаменитий вірш Огастеса Де Моргана (Augustus De Morgan) Створимо файл за допомогою ed:

$ ed

a

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  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 8 рядків, 46 слів і 263 символу Поняття «слово» визначається надзвичайно просто: будь-який рядок символів, яка не містить пробілів, знаків табуляції та роздільників рядків

Команда wc може обрахувати декілька файлів (і вивести загальні результати), може також виключити підрахунок-якої категорії Див опис wc (1)

Наступна команда називається grep вона переглядає файл в пошуку рядків, відповідних шаблоном (Імя команди походить від назви команди g /regular5expression/p   (g/регулярное5вираженіе/ P) редактора ed, про яку розказано в додатку 1) Припустимо, що потрібно знайти слово «fleas» у файлі poem:

$ grep  fleas poem

Great  fleas have little  fleas

And  little  fleas have lesser fleas,

And  the  great  fleas  themselves,  in  turn, have  greater fleas  to  go on

$

Якщо вказати параметр-v, то grep шукатиме рядки, НЕ відповідні шаблоном (Параметр названий «v» на імя команди редактора можна вважати, що він змінює зміст відповідності на зворотний)

$ grep  -v  fleas  poem

upon  their  backs  to  bite  em, and  so  ad  infinitum

While these  again  have  greater  still, and  greater  still, and  so  on

$

Команда grep може бути використана для перегляду декількох файлів в цьому випадку перед початком кожного рядка, що задовольняє шаблоном, буде виведено імя файлу, щоб було зрозуміло, де знайдено відповідність Існують також параметри для підрахунку, нумерації і т д Також grep може обробляти шаблони набагато складніші, ніж просто слово (як «fleas»), але залишимо обговорення цієї можливості до глави 4

Третя команда, sort, сортує введені дані за алфавітом, рядок за рядком Для вірша це виглядає досить дивно, але все-таки спробуємо її застосувати, щоб подивитися, що вийде:

$ sort poem

and greater still, and so  on

and so  ad infinitum

have  greater  fleas  to  go  on upon  their  backs  to  bite  em,

And  little  fleas have lesser fleas,

And  the  great  fleas  themselves, in  turn, Great  fleas have  little fleas

While these again  have greater  still,

$

Впорядкування виконано построчно, при цьому порядок сортування за замовчуванням виглядає наступним чином: спочатку прогалини, потім букви у верхньому регістрі і потім в нижньому регістрі, так що алфавітний порядок дотримується не строго

Команда sort має величезну кількість параметрів, що визначають порядок сортування: зворотний, по числовим значенням, в лексикографічному порядку, ігноруючи пробіли, по полях усередині рядка і т д – зазвичай краще переглянути всі ці параметри, щоб бути впевненим у їх значенні Перелічимо найбільш часто використовуються з них:

sort –r               Порядок, зворотний звичайному

sort –n              Сортувати за значеннями чисел

sort –nr             За значеннями чисел в зворотному порядку

sort –f               Ігнорувати відмінність регістрів1

sort +n              Сортувати починаючи з n +15 го поля

Більш детальна інформація про команду sort представлена ​​в розділі 4

Ще одна команда для роботи з файлом – це tail Вона виводить останні 10 рядків файлу Це занадто для вірші з 8 рядків, але для великих файлів це добре Крім того, у tail є параметр, задає кількість рядків для перегляду, тому щоб надрукувати останній рядок вірша:

$ tail -1  poem

and greater still, and so  on

$

tail також може друкувати файл, починаючи з заданої рядки:

$ tail +3 імя5файла

Висновок почнеться з рядка 3 (Зверніть увагу на природну інверсію угоди про знак мінус в аргументі)

І остання пара команд, яка служить для порівняння файлів

Припустимо, що варіант poem зберігається у файлі new_poem:

$ cat  poem

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  greater fleas  to  go on

While these  again  have  greater  still, and  greater  still, and  so  on

$ cat  new_poem

Great  fleas  have  little  fleas upon  their  backs  to  bite  them,

And  little  fleas  have  lesser  fleas, and so  on  ad  infinitum

1 При цьому b сортується як B: b раніше, ніж D, але B завжди буде виведено раніше, ніж b – Прямуючи науч ред

And  the  great  fleas  themselves,  in  turn, have  greater fleas  to  go on

While these again  have greater  still,

and greater still, and so  on

$

Ці два файли мало чим відрізняються один від одного, і людині важко виявити відмінності На допомогу приходять команди порівняння файлів Команда cmp знаходить перше розбіжність:

$ cmp  poem new_poem

poem  new_poem  differ: char  58,  line 2

$

Це означає, що перша відмінність зустрічається у другому рядку (що дійсно так), але при цьому немає ніякої інформації про те, в чому ця відмінність полягає і чи є ще відмінності, крім першого

Друга команда, що виконує порівняння файлів, повідомляє про всі змінених, видалених або доданих рядках і називається diff:

$ diff poem new_poem

2c2

&lt     upon their backs  to  bite em,

–––

&gt     upon  their  backs  to  bite  them, 4c4

&lt     and so  ad infinitum

–––

&gt     and so  on ad infinitum

$

Це означає, що рядок 2 перших файлу (poem) повинна бути замінена на рядок 2 другого файлу (new_poem), аналогічно для рядка 4

Взагалі кажучи, cmp застосовується, коли треба переконатися, що файли дійсно мають однаковий вміст Ця команда швидко виконується і підходить для будь-яких (не тільки текстових) файлів А команда diff застосовується, коли є підозра в тому, що у файлів є якісь відмінності, і треба дізнатися, які саме рядок не совпа дають При цьому diff обробляє тільки текстові файли1

Команди обробки файлів: резюме

Короткий перелік розглянутих команд обробки файлів представлений в табл 11

1 Порівнявши виконавчі файли, diff скаже: «Binary files перший and  другий

differ »або, якщо вони не відрізняються, не скаже нічого – Прямуючи науч ред

Таблиця 11 Основні команди, що відносяться до файлової системи

Команда

Дія

ls

ls імена5файлов

ls –t ls –l ls  –u

ls –r

ed імена5файлов

cp file1 file2

mv  file1 file2

rm імена5файлов cat  імена5файлов pr  імена5файлов

pr  –n імена5файлов

pr  –m  імена5файлов

wc  імена5файлов

wc  –l  імена5файлов

grep  шаблон імена5файлов grep  –v  шаблон імена5файлов sort  імена5файлов

tail імена5файлов tail –n  імена5файлов tail +n  імена5файлов cmp  file1 file2

diff file1 file2

вивести список імен всіх файлів в поточному каталозі

вивести тільки зазначені файли

вивести список, упорядкований за часом, починаючи з самого нового

вивести список з більш докладною інформацією також ls-lt

вивести список, упорядкований за часом останнього використання також ls-lu, ls-lut

вивести список у зворотному порядку також ls

-Rt, ls-rlt і т д

редагувати вказані файли

копіюватиfile1  вfile2, Перезаписуючи старий file2, Якщо він існував

переміститиfile1  вfile2, Перезаписуючи старий file2, Якщо він існував

безповоротно видалити вказані файли вивести вміст зазначених файлів вивести вміст із заголовком, 66 рядків

на сторінці

вивести в n колонок

вивести вказані файли поруч один з одним (кілька колонок)

порахувати кількість рядків, слів і символів в кожному файлі

порахувати кількість рядків у кожному файлі вивести рядки, відповідні шаблоном вивести рядки, НЕ відповідні шаблоном вивести рядки файлу в алфавітному порядку вивести 10 останніх рядків файлу

вивести n останніх рядків файлу вивести, починаючи з n-Го рядка вивести положення першого відмінності вивести всі відмінності між файлами

Джерело: Керниган Б, Пайк Р, UNIX Програмне оточення – Пер з англ – СПб: Символ-Плюс, 2003 – 416 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*