Відмінності між версіями «Wc»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Опції wc у Лінукс)
 
(не показані 2 проміжні версії цього учасника)
Рядок 2: Рядок 2:
  
  
== Опції '''wc''' у Лінукс ==
+
== '''Команда wc без опцій та аргументу''' ==
  
 +
Будучи запущена без опцій і аргументу,команда '''wc''' підраховує кількість рядків,слів і байт в стандартному вводі (наприклад,з клавіатури):
  
''[-c], [--bytes]'' — Показує кількість байтів;
+
$ wc        (Enter)
 +
когда        (Enter)
 +
мы были      (Enter)
 +
молоды      (Enter + Ctrl-d)
 +
      3      4      38
  
''[-l], [--lines]'' — Показує кількість рядків;
+
На виході команди ми бачимо три числа: кількість рядків( 3 ),кількість слів( 4 ) і кількість байт(38).
  
''[-L], [--max-line-length]'' — Виводить довжину найбільшого рядку;
+
=='''Робота з файлами'''==
  
''[-m]'' — Виводить кількість символів;
 
  
''[-w], [--words]'' — Показує кількість слів у файлі;
+
Команда '''wc''' приймає файл як аргумент:
  
''[--files0-from=F]'' — Бере імена файлів з списку у файлі з іменем F
+
$ wc onegin.txt
 +
 +
14  61  668 onegin.txt
  
''[--help]''        — Показує коротку довідку по утиліті;
+
Це 14 рядків першої строфи "Євгенія Онєгіна".
  
''[--version]''     — Виводить версію утиліти;
+
Команда '''wc''' приймає як аргумент будь-яку кількість файлів. Ці файли вказуються через пробіл, при необхідності з усіма своїми шляхами (path):
 +
 
 +
$ wc /etc/fstab /boot/grub/menu.lst /home/ya/Desktop/wc-ru.txt
 +
 
 +
  11  66  918 /etc/fstab
 +
  34  102  776 /boot/grub/menu.lst
 +
  69  185 2445 /home/ya/Desktop/wc-ru.txt
 +
  114  353 4139 итого
 +
Команда вкаже параметри кожного з файлів, а наприкінці підсумовує підсумок.
 +
 
 +
Можна також задати підрахунок параметрів всіх файлів в директорії:
 +
 
 +
~/Desktop$  wc *
 +
wc: Documents: Is a directory
 +
      0      0      0 Documents
 +
      9      14    207 MyComputer.desktop
 +
      3      4      38 mol.txt
 +
    14      61    668 onegin.txt
 +
    114    156    1715 shema.txt
 +
    150    318    5066 trash.desktop
 +
wc: wc: Is a directory
 +
      0      0      0 wc
 +
    69    185    2445 wc-ru.txt
 +
    15      18    258 Дисковод
 +
      1      0      2 Текстовый файл
 +
    375    756  10399 итого
 +
 
 +
але це має сенс робити тільки з директоріями, що містять лише текстові файли. Якщо в директорії будуть знаходитися бінарні або .html файли, то з'явиться безліч повідомлень типу ''"Invalid or incomplete multibyte or wide character"'', що можна перекласти як ''"Пошкоджені, або неповні, або розширені символи"''. А ось самостійно вибирати тільки текстові файли команда '''wc''' не вміє.
 +
 
 +
== '''Синтаксис''' ==
 +
  wc [-clmw] [файл ...]
 +
 
 +
== '''Опції команди wc ''' ==
 +
 
 +
'''Опція - l'''
 +
 
 +
Підраховує тільки кількість рядків:
 +
 
 +
$ wc -l onegin.txt
 +
14 onegin.txt
 +
 
 +
Корисним видається використання цієї опції в складі програмного каналу з командою ls для підрахунку кількості файлів в директоріях:
 +
 
 +
~/Desktop$ ls | wc -l
 +
10
 +
 
 +
Це підрахунок файлів в поточній директорії, а от підрахунок всіх файлів рекурсивно (включаючи підкаталоги і підкаталоги підкаталогів):
 +
 
 +
$ ls -R /home | wc -l
 +
355
 +
 
 +
'''Опція - L'''
 +
 
 +
Підрахує довжину найбільшого рядка (але не вказує її номер):
 +
 
 +
$ wc -L onegin.txt
 +
31 onegin.txt
 +
 
 +
'''Опція - m'''
 +
 
 +
Підраховує тільки кількість символів (включаючи пробіли, табуляцію, символи нового рядка):
 +
 
 +
$ wc -m onegin.txt
 +
373 onegin.txt
 +
 
 +
'''Опція - c'''
 +
 
 +
Підраховує байти в зазначеному потоці даних. Ця опція, на відміну від інших опцій команди '''wc''', може застосовуватися до будь яких даних, а не тільки до текстових. Скажімо, вона може підрахувати число байт в будь-якому двійковому файлі, навіть графічному:
 +
 
 +
$ wc -c top.jpg
 +
29559 top.jpg
 +
 
 +
І навіть визначити розмір розділу жорсткого диска:
 +
 
 +
$ wc -c /dev/hdb1
 +
1003451904 /dev/hdb1
 +
 
 +
розмір цього розділу близько 1Гб.
 +
 
 +
Але можна підраховувати байти не тільки в файлах, але і в стандартному виводі інших програм і процесів.
 +
 
 +
Наприклад:
 +
$ dmesg | grep -i 'usb' | wc -c
 +
2130
 +
 
 +
'''Опція - w'''
 +
 
 +
Пише в стандартний висновок число слів, що містяться в кожному вхідному файлі.
 +
 
 +
Наприклад,підрахувати кількість слів у файлі:
 +
 
 +
# wc -w /data/file

Поточна версія на 15:44, 15 травня 2014

wc (абревіатура від «word count») — утиліта UNIX-подібних операційних систем, що підраховує кількість рядків, слів чи байт у вказаних файлах, а також їх суму, якщо вказано більше одного файлу. Якщо файли не вказуються, тоді команда зчитує дані зі стандартного вводу.


Команда wc без опцій та аргументу

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

$ wc         (Enter)
когда        (Enter)
мы были      (Enter)
молоды       (Enter + Ctrl-d)
     3       4      38

На виході команди ми бачимо три числа: кількість рядків( 3 ),кількість слів( 4 ) і кількість байт(38).

Робота з файлами

Команда wc приймає файл як аргумент:

$ wc onegin.txt

14  61  668 onegin.txt

Це 14 рядків першої строфи "Євгенія Онєгіна".

Команда wc приймає як аргумент будь-яку кількість файлів. Ці файли вказуються через пробіл, при необхідності з усіма своїми шляхами (path):

$ wc /etc/fstab /boot/grub/menu.lst /home/ya/Desktop/wc-ru.txt
 
 11   66  918 /etc/fstab
 34  102  776 /boot/grub/menu.lst
 69  185 2445 /home/ya/Desktop/wc-ru.txt
 114  353 4139 итого

Команда вкаже параметри кожного з файлів, а наприкінці підсумовує підсумок.

Можна також задати підрахунок параметрів всіх файлів в директорії:

~/Desktop$  wc *
wc: Documents: Is a directory
     0       0       0 Documents
     9      14     207 MyComputer.desktop
     3       4      38 mol.txt
    14      61     668 onegin.txt
   114     156    1715 shema.txt
   150     318    5066 trash.desktop
wc: wc: Is a directory
     0       0       0 wc
    69     185    2445 wc-ru.txt
    15      18     258 Дисковод
     1       0       2 Текстовый файл
   375     756   10399 итого

але це має сенс робити тільки з директоріями, що містять лише текстові файли. Якщо в директорії будуть знаходитися бінарні або .html файли, то з'явиться безліч повідомлень типу "Invalid or incomplete multibyte or wide character", що можна перекласти як "Пошкоджені, або неповні, або розширені символи". А ось самостійно вибирати тільки текстові файли команда wc не вміє.

Синтаксис

 wc [-clmw] [файл ...]

Опції команди wc

Опція - l

Підраховує тільки кількість рядків:

$ wc -l onegin.txt
14 onegin.txt

Корисним видається використання цієї опції в складі програмного каналу з командою ls для підрахунку кількості файлів в директоріях:

~/Desktop$ ls | wc -l
10

Це підрахунок файлів в поточній директорії, а от підрахунок всіх файлів рекурсивно (включаючи підкаталоги і підкаталоги підкаталогів):

$ ls -R /home | wc -l
355

Опція - L

Підрахує довжину найбільшого рядка (але не вказує її номер):

$ wc -L onegin.txt
31 onegin.txt

Опція - m

Підраховує тільки кількість символів (включаючи пробіли, табуляцію, символи нового рядка):

$ wc -m onegin.txt
373 onegin.txt

Опція - c

Підраховує байти в зазначеному потоці даних. Ця опція, на відміну від інших опцій команди wc, може застосовуватися до будь яких даних, а не тільки до текстових. Скажімо, вона може підрахувати число байт в будь-якому двійковому файлі, навіть графічному:

$ wc -c top.jpg
29559 top.jpg

І навіть визначити розмір розділу жорсткого диска:

$ wc -c /dev/hdb1
1003451904 /dev/hdb1

розмір цього розділу близько 1Гб.

Але можна підраховувати байти не тільки в файлах, але і в стандартному виводі інших програм і процесів.

Наприклад:

$ dmesg | grep -i 'usb' | wc -c
2130

Опція - w

Пише в стандартний висновок число слів, що містяться в кожному вхідному файлі.

Наприклад,підрахувати кількість слів у файлі:

# wc -w /data/file