Задачите за подмяна могат да се извършват в Linux по различни начини. Командата 'sed' е един от начините за изпълнение на задача за замяна. Тази команда може да се използва за замяна на текст в низ или файл, като се използва различен шаблон. Как можете да замените всичко след съответстващия модел с помощта на командата 'sed' е показано в този урок.
Заменете всичко след мача в низ:
Как частта от низ може да бъде заменена въз основа на съвпадащ модел и $ PARTITION_COLUMN е показано в този раздел на този урок. Но тази променлива работи, ако моделът съвпада с която и да е дума в началото или средата на низа. Той няма да замести текста, ако шаблонът съвпада с последната дума от низа.
Пример-1: Заменете всички след мача с помощта на $ PARTITION_COLUMN
Следващата команда ще търси символа „а“, а останалата част след „а“ ще бъде заменена от текста „популярен сайт в блога“. $ PARTITION_COLUMN.* се използва за дефиниране на останалата част след символа, 'a'.
$ echo "LinuxHint е уебсайт" | sed "s / a $ PARTITION_COLUMN.* / популярен сайт в блог / "След изпълнението на командата ще се появи следният изход. Тук „уебсайт“ е заменен с „популярен блог сайт“.
Следният модел ще търси думата "уеб„В низа и заменете останалата част с„уеб„От текста“популярен блог сайт'ако съвпадението съществува и'уеб'Не е частта от последната дума от низа.
След изпълнението на командата ще се появи следният изход. Тук „уебсайт“ е последната дума от низа и поради тази причина не е извършена подмяна.
Пример-2: Заменете всички след съвпадение, като използвате шаблон
Следващата команда ще търси думата 'баш'глобално в низа и заменете всичко с думата, ако думата съществува в низа. 'ж'Се използва тук за глобално търсене.
$ echo "Харесва ми баш програмиране" | sed "s / bash.* / python скрипт / g "След изпълнението на командата ще се появи следният изход. Тук 'bash' съществува в средата на низа и замяната е извършена.
Заменете всичко след мача във файл:
Цялото съдържание на определен ред или множество редове или останалите редове на файл след съвпадението може да бъде заменено с помощта на 'сед'команда. Създайте текстов файл с име присъствие.текст със следното съдържание, за да тествате примерите, показани в този раздел.
присъствие.текст
1108885 присъства1999979 присъства
1769994 отсъства
1105656 отсъства
1455999 отсъства
Пример -3: Заменете цялото съдържание от ред на файл след съвпадението
Следващата команда 'sed' ще търси номера 1769994 във файла и всичко с номера ще бъде заменено от текста, '1586844 присъства', ако номерът съществува във всеки ред на файла.
$ котешка привързаност.текст$ sed "s / 1769994.* / 1586844 присъства / "присъствие.текст
Ще се появи следният изход, изпълняващ командите. Тук номерът за търсене съществува в третия ред на файла и замяната е извършена.
Пример -4: Заменете цялото съдържание от множеството редове на файл след съвпадението
Следващата команда 'sed' показва използването на променливата $ PARTITION_COLUMN за замяна на множество редове от файла. Командата ще търси „110“ в началото на всеки ред от файла и ще замени всичко с „110“ с текста „Невалиден запис“, където ще бъде намерен съответстващият текст.
$ посещаемост на котка.текст$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Невалиден запис / "присъствие.текст
След изпълнението на командите ще се появи следният изход. „110“ съществува в два реда на файла и те са заменени от заместващия текст.
Пример-5: Заменете цялото съдържание от ред на файл, използвайки 'c' след съвпадението
Следното 'сед'команда показва използването на'° С'да замени всичко след мача. Тук, '° С'показва промяната. Командата ще търси думата "присъства'във файла и заменете всичко от реда с текст,'Този ред се заменя'ако думата съществува във всеки ред на файла.
$ посещаемост на котка.текст$ sed '/ present / c Този ред се заменя с' присъствие.текст
След изпълнението на командите ще се появи следният изход. Думата „присъства“ съществува в първите два реда на файла и тези два реда са заменени от заместващия текст.
Пример 6: Заменете цялото съдържание от ред на файл въз основа на начален и краен модел
Понякога се изисква замяна на текст въз основа на началния и крайния модел. Следващата команда 'sed' показва начина за определяне на начални и крайни модели за замяна на редове от файл. Командата ще претърси онези редове във файла, които започват с числото 110 и завършват с думата "отсъства" и ще замени всичко с думата "замени", където шаблоните съвпадат.
$ посещаемост на котка.текст$ sed -e / ^ 110.* отсъства $ / заменено / g 'присъствие.текст
След изпълнението на командите ще се появи следният изход. Тук първият и четвъртият ред започват с числото 110, но думата „отсъства“ съществува само в четвъртия ред. И така, четвъртият ред на файла е заменен от заместващия текст.
Заключение:
Командата 'sed' е много мощен инструмент на Linux за изпълнение на различни видове задачи, свързани с обработката на текст. Заместващата задача, базирана на съответстващия модел, е обсъдена в този урок, като се използват различни видове модели в командата 'sed'. $ PARTITION_COLUMN, „c“ и „.* 'се използва в този урок, за да замести всичко от ред на файла, където съществува съответстващият модел. Тук са показани употребите на някои символи на дефиниращи модели, като '^' и '$'. Много други знаци съществуват, за да дефинират модела в регулярен израз с цел търсене. Надявам се този урок да помогне на читателя да разбере основите на подмяната на всичко от файл след мача.