Linux

Поиск строк в файлах в Linux

Самые популярные команды для поиска содержимого в Linux

1 grep

grep -r -n «text» /path

-n показывает строку, где был найден фрагмент;

-r осуществляет розыск рекурсивно, в файлах в самом каталоге /path и в его подкаталогах;

 

2 find

find /var/www/ -name "*.conf"

 

Установка CP1251 locale в Linux

В различных версиях locale распологается в: 

/usr/share/locale/

/usr/lib/locale/ 

Локаль уже имеется в i18n, необходимо лишь сгенерить из нее LC которая установится в

/usr/share/locale/ru_RU.CP1251

/usr/lib/locale/ru_RU.CP1251

Для установки CP1251 locale выполняем:

localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

после что будет создана директория ru_RU.cp1251:

/usr/share/locale/ru_RU.cp1251

/usr/lib/locale/ru_RU.cp1251

Необходимо переименовать

ru_RU.cp1251 -> ru_RU.CP1251

и испробовать наличие в системе:

locale -a | grep ru_RU

 

Команды для работы с текстовыми файлами в Linux

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

— взять из файла с первой по восьмую строки и из них вывести первые 5

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

— сопоставить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

Администратор

Хороший ученик видит ошибки своего учителя, но молчит о них почтительно, ибо самые эти ошибки служат ему в пользу и наставляют его на прямой путь