Linux разработчиците следват философията за създаване на малки програми, които изпълняват една задача и я вършат добре. Вземете за пример инструменти за обработка на текст на Linux, те са леки и имат модулна функционалност. Въпреки че тези инструменти за манипулиране на текст се различават по сложност и функционалност, те са полезни в среда, където графичният потребителски интерфейс не е наличен.

Статията обхваща най-добрите инструменти на Linux за четене на файлове и използване на регулярни изрази за извършване на операции с избрания текст. Той също така обхваща най-основната им функционалност и примери за по-добро разбиране.

1. grep

grep е помощна програма за манипулиране на текст на Linux, която търси низ от знаци или модели, известни като регулярни изрази във файл или текст. Инструментът grep принадлежи към семейството на помощните програми, които включват egrep, fgrep и grep, сред които fgrep е най-бързият от всички, докато grep е най-лесният.

Общият синтаксис за използване на grep е както следва:

instagram viewer
grep -options низ име на файл

Например, за да търсите думата "root" в файла /etc/passwd:

grep root /etc/passwd

Някои стандартни примери за команден ред, за да започнете, са:

Настроики Пример Описание
-° С grep -c ./bashrc Пребройте броя на редовете, в които съществува низът
-i grep -i ./bashrc Извършете търсене, независимо от главните букви, за посочения низ
grep -o файл Отпечатва само съвпадащия низ
grep -l "passwd" Отпечатва имена на файлове в текущата директория, които съответстват на шаблона
grep -n файл Отпечатва номера на реда по линията, съдържаща посочения низ
низ1|низ2 grep "string1|string2" файл Намерете и отпечатайте множество низове от файл

По същия начин можете да използвате ^ метасимвол с командата grep за показване на всички съвпадащи низове, които започват с определени знаци.

Например, следната команда предава изхода на команда env като вход за grep и показва променливи, които започват с "HO":

env | grep ^HO

Свързани: Практически примери за Linux Grep команди

2. awk

awk е мощен скриптов език и инструмент за манипулиране на текст от команден ред, който може да извършва сканиране ред по ред и да сравнява редове с шаблони. Основният синтаксис на командата awk е действие, дефинирано между единични кавички и фигурни скоби, последвани от името на файла.

awk '{action}' име на файл
awk '{шаблон; action}' име на файл

Помощната програма търси във файла с помощта на регулярни изрази и изпълнява функцията, дефинирана в параметъра за действие. awk изпълнява скрипта на всеки ред, ако не зададете шаблон, както е показано по-долу:

awk '{print $1}' awk_examples.txt

...където $1 показва първото поле на awk_examples.txt файл.

Следната команда изпълнява функцията за печат върху дадения шаблон, като заменя второто поле "свят"с"Алис," и показва целия ред ($0):

ехо "Здравей свят" | awk '{$2="Алиса"; отпечатай $0}'

Изход:

Здравей Алис

По същия начин можете да използвате функцията отпечатайте $0 от командата по-горе, за да емулирате grep функционалност.

awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh

3. вид

sort е друга помощна програма от командния ред на Linux, която ви помага да покажете съдържанието на посочения текстов файл в сортиран формат. Например, можете да пренасочите изхода на командата awk като вход към помощната програма за сортиране, както следва:

awk '{print $1}' awk_examples.txt | сортиране > сортиране_текст.txt
котка sort_text.txt

Изход:

Свързани: Как да сортирате текстови файлове в Linux с помощта на сортиране

4. sed

sed или stream editor приема вход като поток от знаци и извършва филтриране и трансформации на текст (изтриване, заместване и замяна) на посочения текст.

Можете да го използвате в скрипт и да редактирате файлове неинтерактивно. Следователно, най-основната цел на помощната програма е подмяната на низ/символи. Общият синтаксис е:

sed 's/string/substitution/option' файл

Създайте файл, използвайки произволни изречения, за да практикувате и разбирате работата на тази помощна програма.

Нека заменим появата на думата "две" на всеки ред от файла с "2" използвайки флаг за глобална замяна, както следва:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

По същия начин използвайте флаг за изтриване на конкретен ред от файла:

sed '2d' sed_examples.txt

Можете също да замените низа, като посочите номер на ред (4 с/две/2/стр) и отпечатване само на заменения ред, както следва:

sed -n '4 s/two/2/p' sed_examples2.txt

В флагът в командата по-горе деактивира автоматичното отпечатване на входния поток към изхода. Можете да използвате тази опция във ваша полза, за да замените функционалността на помощната програма grep със sed.

Например, можете да промените командата по-горе, като включите само модел на регулярен израз /two/p такъв, че на -стр флагът ще отпечата само редовете към стандартния изходен поток.

sed -n '/two/p' sed_examples2.txt

Свързани: Тези 10 примера за sed ще ви направят опитен потребител на Linux

5. разрез

Изрязването е друга помощна програма от командния ред, която изрязва/извлича части от текст от ред или файл. Той изрязва текста въз основа на определено поле, знак или позиция на байт и предава резултата към стандартния изход.

Помощната програма приема следния синтаксис:

разрез  файл

Използвай опция за изрязване на раздел или съдържание с помощта на определен байт или диапазон от байтове:

cut -b 1 cut_examples.txt

Използвай -° С флаг за извличане на текст, като посочите позициите на знаците:

cut -c 1,3,5 cut_examples.txt

И накрая, можете също да извлечете текст, като посочите полета с -f опция и за разделител на интервал или поле:

cut -d " " -f 1 cut_examples.txt

Ето списъка с диапазони с примери и описания, които можете да използвате с героя -° С и байт настроики:

Обхват Пример Описание
н- cut -c 7- име на файл Извличане на символ от n-то цяло число до края на реда
n-m cut -b 7-15 име на файл Извлича се от цяло число n-m на всеки ред от входния файл
cut -c -7 име на файл Извлича редове, започващи от m до края на реда

Имайте предвид, че не можете да дефинирате диапазоните за извличане на текст с помощта на полето -f опция.

Манипулиране на текст с Linux команди

Linux предлага много програми и инструменти за работа и работа около файлове или текст. Изучаването на всички тях може да не е необходимо, тъй като можете лесно да запълните празнината с друг, след като овладеете добре един, като например да използвате sed като grep или awk като grep, но това не може да е вярно за всеки инструмент.

Освен това Linux командите имат стръмна крива на обучение, но след като развиете умението, те могат да се окажат много полезни и ефективни в живота на всеки потребител на Linux, особено на системен администратор.

8 най-добри терминални приложения за подобрена производителност на Linux

Уморени сте от старото и скучно терминално приложение, което се предлага предварително инсталирано на Linux? Вижте тези осем терминални приложения, които ще подобрят работния ви процес.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Linux
  • Linux команди
За автора
Румайса Ниази (публикувани 7 статии)

Румайса е писател на свободна практика в MUO. Тя е носила много шапки, от математик до ентусиаст по информационна сигурност, и сега работи като SOC анализатор. Нейните интереси включват четене и писане за нови технологии, Linux дистрибуции и всичко около информационната сигурност.

Още от Rumaisa Niazi

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате