23 июл. 2014 г.

on Leave a Comment

Примеры команды CUT

Команда CUT может быть использована для вывода, например, только определенных колонок из результата вывода какой-то команды или текстового файла.

Ниже приведены примеры, как можно использовать эту команду:

Допустим у нас есть вот такой файл с именами:
  $ cat /tmp/names.txt    
  Avdeeva:Irina:Vladimirovna  
  Alekseev:Sergey:Viktorovich  
  Borisova:Elena:Vladimirovna  
  Gordeeva:Larisa:Andreevna

Вывести 1-е поле(фамилия) из файла:
  $ cut -d':' -f 1 /tmp/names.txt
  Avdeeva
  Alekseev
  Borisova
  Gordeeva

Вывести 2-е и 3-е поле(фамилия) из файла:
  $ cut -d':' -f 2,3 /tmp/names.txt
  Irina:Vladimirovna
  Sergey:Viktorovich
  Elena:Vladimirovna
  Larisa:Andreevna

Вывести только первые 11 символов каждой строки из файла:
  $ cut -c 1-11  /tmp/names.txt
  Avdeeva:Iri
  Alekseev:Se
  Borisova:El
  Gordeeva:La

Более реальный пример. Например у нас есть файл /etc/oratab:
   $ cat /etc/oratab
  # This file is used by ORACLE utilities.  It is created by root.sh
  # and updated by the Database Configuration Assistant when creating
  # a database.

  # A colon, ':', is used as the field terminator.  A new line terminates
  # the entry.  Lines beginning with a pound sign, '#', are comments.
  #
  # Entries are of the form:
  #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
  #
  # The first and second fields are the system identifier and home
  # directory of the database respectively.  The third filed indicates
  # to the dbstart utility that the database should , "Y", or should not,
  # "N", be brought up at system boot time.
  #
  # Multiple entries with the same $ORACLE_SID are not allowed.
  #
  #
  ORCL0:/u01/app/oracle/product/10.2.0/db_1:N
  ORCL1:/u01/app/oracle/product/10.2.0/db_1:N
  ORCL2:/u01/app/oracle/product/10.2.0/db_1:N
  ORCL3:/u01/app/oracle/product/10.2.0/db_1:Y
  ORCL4:/u01/app/oracle/product/10.2.0/db_1:Y
  ORCL5:/u01/app/oracle/product/10.2.0/db_1:Y
  ORCL6:/u01/app/oracle/product/10.2.0/db_1:Y

  ORCL7:/u03/app/oracle/product/11.2.0/dbhome_1:N
  ORCL8:/u03/app/oracle/product/11.2.0/dbhome_1:N
  ORCL9:/u03/app/oracle/product/11.2.0/dbhome_1:N
  ORCL10:/u03/app/oracle/product/11.2.0/dbhome_1:N
  ORCL11:/u03/app/oracle/product/11.2.0/dbhome_1:N


И задача: Вывести только пути к ORACLE_HOME, причем не повторяющиеся:

  $ cat /etc/oratab|egrep ':N|:Y'|grep -v \*|cut -f 2  -d':'|uniq
  /u01/app/oracle/product/10.2.0/db_1
  /u03/app/oracle/product/11.2.0/dbhome_1

0 коммент.:

Отправить комментарий

Технологии Blogger.