Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Манипуляции с текстом

Ответить
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1327
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Манипуляции с текстом

Сообщение ALEXX »

cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан

Код: Выделить всё

grep Aug /var/log/messages
из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие "Aug"

Код: Выделить всё

grep ^Aug /var/log/messages
из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, начинающиеся на "Aug"

Код: Выделить всё

grep [0-9] /var/log/messages
из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие цифры

Код: Выделить всё

grep Aug -R /var/log/*
отобрать и вывести на стандартное устройство вывода строки, содержащие "Aug", во всех файлах, находящихся в директории /var/log и ниже

___________________________________________________________________________________________

Код: Выделить всё

sed 's/stringa1/stringa2/g' example.txt
в файле example.txt заменить "string1" на "string2", результат вывести на стандартное устройство вывода.

Код: Выделить всё

sed '/^$/d' example.txt
удалить пустые строки из файла example.txt

Код: Выделить всё

sed '/ *#/d; /^$/d' example.txt
удалить пустые строки и комментарии из файла example.txt

Код: Выделить всё

echo 'esempio' | tr '[:lower:]' '[:upper:]'
преобразовать символы из нижнего регистра в верхний

Код: Выделить всё

sed -e '1d' result.txt
удалить первую строку из файла example.txt

Код: Выделить всё

sed -n '/string1/p'
отобразить только строки содержашие "string1"

Код: Выделить всё

sed -e 's/ *$//' example.txt
удалить пустые символы в в конце каждой строки

Код: Выделить всё

sed -e 's/string1//g' example.txt
удалить строку "string1" из текста не изменяя всего остального

Код: Выделить всё

sed -n '1,8p;5q' example.txt
взять из файла с первой по восьмую строки и из них вывести первые пять

Код: Выделить всё

sed -n '5p;5q' example.txt
вывести пятую строку

Код: Выделить всё

sed -e 's/0*/0/g' example.txt
заменить последовательность из любого количества нулей одним нулём

___________________________________________________________________

Код: Выделить всё

cat -n file1
пронумеровать строки при выводе содержимого файла

Код: Выделить всё

cat example.txt | awk 'NR%2==1'
при выводе содержимого файла, не выводить чётные строки файла

____________________________________________________________________

Код: Выделить всё

echo a b c | awk '{print $1}'
вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции

Код: Выделить всё

echo a b c | awk '{print $1,$3}'
вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции

__________________________________________________________________

Код: Выделить всё

paste file1 file2
объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m

Код: Выделить всё

paste -d '+' file1 file2
объединить содержимое file1 и file2 в виде таблицы с разделителем "+"

__________________________________________________________________

Код: Выделить всё

sort file1 file2
отсортировать содержимое двух файлов

Код: Выделить всё

sort file1 file2 | uniq
отсортировать содержимое двух файлов, не отображая повторов

Код: Выделить всё

sort file1 file2 | uniq -u
отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)

Код: Выделить всё

sort file1 file2 | uniq -d
отсортировать содержимое двух файлов, отображая только повторяющиеся строки

_________________________________________________________________

Код: Выделить всё

comm -1 file1 file2
сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1'

Код: Выделить всё

comm -2 file1 file2
сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2'

Код: Выделить всё

comm -3 file1 file2
сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

_________________________________________________________________
Аватара пользователя
Packum
Активный участник
Активный участник
Сообщения: 172
Зарегистрирован: 18 янв 2015, 15:03
Откуда: С.Петербург

Re: Манипуляции с текстом

Сообщение Packum »

Учебник по sed от drBatty: http://emulek.github.io/sed/
Аватара пользователя
Skull
Разговорчивый гость
Разговорчивый гость
Сообщения: 35
Зарегистрирован: 24 мар 2015, 13:03
Откуда: Климовск
Контактная информация:

Re: Манипуляции с текстом

Сообщение Skull »

Заменить по месту можно командой sed -i или subst.

Выводить только сообщения об ошибках:

Код: Выделить всё

cmd >/dev/null
Вывести и стандартный вывод и вывод ошибок в файл:

Код: Выделить всё

cmd &>file
Вывести и стандартный вывод и вывод ошибок в файл и одновременно показывать вывод на экране:

Код: Выделить всё

cmd 2>&1 | tee file
Ответить

Вернуться в «Командная строка»