Linux sed удалить символ

Linux sed удалить символ

In this article of sed series, we will see the examples of how to remove or delete characters from a file. The syntax of sed command replacement is:

This sed command finds the pattern and replaces with another pattern. When the replace is left empty, the pattern/element found gets deleted.

Let us consider a sample file as below:

$ cat file Linux Solaris Ubuntu Fedora RedHat
$ sed 's/a//' file Linux Solris Ubuntu Fedor RedHt

This will remove the first occurence of ‘a’ in every line of the file. To remove all occurences of ‘a’ in every line,

$ sed 's/^.//' file inux olaris buntu edora edHat

.(dot) tries to match a single character. The ^ tries to match a pattern(any character) in the beginning of the line. Another way to write the same:

This tells to replace a character with nothing. Since by default, sed starts from beginning, it replaces only the 1st character since ‘g’ is not passed.

3. To remove last character of every line :

$ sed 's/.$//' file Linu Solari Ubunt Fedor RedHa

The $ tries to match a pattern in the end of the line.

4. To remove the 1st and last character of every line in the same command:

$ sed 's/.//;s/.$//' file inu olari bunt edor edHa

Two commands can be given together with a semi-colon separated in between.

Читайте также:  Linux sys call table

5. To remove first character only if it is a specific character:

$ sed 's/^F//' file Linux Solaris Ubuntu edora RedHat

This removes the 1st character only if it is ‘F’.

6. To remove last character only if it is a specific character:

$ sed 's/x$//' file Linu Solaris Ubuntu Fedora RedHat

This removed the last character only if it s ‘x’.

7. To remove 1st 3 characters of every line:

$ sed 's/. //' file ux aris ntu ora Hat

A single dot(.) removes 1st character, 3 dots remove 1st three characters.

8. To remove 1st n characters of every line:

$ sed -r 's/.//' file x ris tu ra at

. -> matches any character n times, and hence the above expression matches 4 characters and deletes it.

9. To remove last n characters of every line:

$ sed -r 's/.$//' file Li Sola Ubu Fed Red
$ sed -r 's/(.).*/\1/' file Lin Sol Ubu Fed Red

.* -> matches any number of characters, and the first 3 characters matched are grouped using parantheses. In the replacement, by having \1 only the group is retained, leaving out the remaining part.

11. To remove everything except the last n characters in a file:

$ sed -r 's/.*(.)/\1/' file nux ris ntu ora Hat

Same as last example, except that from the end.

12. To remove multiple characters present in a file:

$ sed 's/[aoe]//g' file Linux Slris Ubuntu Fdr RdHt

To delete multiple characters, [] is used by specifying the characters to be removed. This will remove all occurences of the characters a, o and e.

13. To remove a pattern :

$ sed 's/lari//g' file Linux Sos Ubuntu Fedora RedHat

Not just a character, even a pattern can be removed. Here, ‘lari’ got removed from ‘Solaris’.

14. To delete only nth occurrence of a character in every line:

$ sed 's/u//2' file Linux Solaris Ubunt Fedora RedHat

By default, sed performs an activity only on the 1st occurence. If n is specifed, sed performs only on the nth occurence of the pattern. The 2nd ‘u’ of ‘Ubuntu’ got deleted.

Читайте также:  Linux kernel modules linked in

15. To delete everything in a line followed by a character:

$ sed 's/a.*//' file Linux Sol Ubuntu Fedor RedH

1 stands for all characters between 0 to 9 meaning all digits, and hence all digits get removed.

17. To remove all lower case alphabets present in every line:

[a-z] represents lower case alphabets range and hence all lower-case characters get removed.

18. To remove everything other than the lower case alphabets:

$ sed 's/[^a-z]//g' file inux olaris buntu edora edat

^ inside square brackets negates the condition. Here, all characters except lower case alphabets get removed.

19. To remove all alpha-numeric characters present in every line:

All alpha-numeric characters get removed.

20. To remove a character irrespective of the case:

$ sed 's/[uU]//g' file Linx Solaris bnt Fedora RedHat

By specifying both the lower and upper case character in brackets is equivalent to removing a character irrespective of the case.

Источник

🐧 Как с помощью sed удалить последний символ из каждой строки на Linux

Sed – это бесплатный редактор потоков с открытым исходным кодом для Linux, macOS, * BSD и Unix-подобных систем.

Он идеально подходит для удаления последнего символа и выполнения других опций для ваших файлов или переменных оболочки.

Удаляем с sed последний символ из каждой строки

Работа с sed все довольно простая, когда дело доходит до манипулирования текстом.

Синтаксис следующий для поиска и замены текста на sed:

sed 's/search/replace/' input > output sed -i'.BAK' 's/search/replace/' input sed 's/search/replace/' "
this is a test, I love Unix, I like Linux too,

Примечание об условном удалении последнего символа

По умолчанию команда sed, использованная до сих пор, удаляет все последние символы.

Но, скажем, вы можете ограничить удаление только цифро следующим образом:

echo «I love Pizza6» | sed ‘s/7$//’
echo «The best blog in Unixverse3» | sed ‘s/[[:digit:]]$//’
echo «I love Pizza6Times» | sed ‘s/1$//’

echo «I love donuts two times a dayz» | sed ‘s/[[:alpha:]]$//’
echo «I love donuts 2 times a dayZ» | sed ‘s/[[:upper:]]$//’

Команда Sed выражения

Буквенно-цифровые символы: ‘[[:alpha:]]’ и ‘[[:digit:]]’; в кодировке «C» и кодировке ASCII это то же самое, что и «[0-9A-Za-z]».

Управляющие символы. В ASCII эти символы имеют восьмеричные коды от 000 до 037 и 177 (DEL). В других наборах символов это эквивалентные символы, если они есть.

Читайте также:  TECMINT

Строчные буквы; в кодировке «C» и кодировке символов ASCII это b c d e f g h i j klm n o p q r s t u v w x y z.

Давайте определим переменную оболочки с именем IP следующим образом:

## Удалить последний символ из $IP ## sed 's/,$//' " ## или ## echo $IP | sed 's/.$//' ## Можно добавить больше IP разделив ',' ## IP="192.168.2.200,$IP" IP="192.168.5.253,$IP" ## Обновим переменную удалив ',' ## IP=$(sed 's/,$//' ") echo "$"

Заключение

Вы узнали, как удалить последний символ из текстового файла и каждой строки, включая переменные оболочки в Linux и Unix-подобных системах. Конечно, мы можем использовать команду awk, команду cut, Perl / Python и так далее.

itisgood
🛠️ Как исправить ошибку do-release-upgrade: command not found Error на Ubuntu
Что такое VPS хостинг?

You may also like

📜 Чтение файла построчно на Bash

📧 В чем разница между IMAP и POP3

✔️ Как управлять контейнерами LXD от имени обычного.

📜 Руководство для начинающих по созданию первого пакета.

Феноменальная популярность электроники Xiaomi: основные причины

📜 Получение вчерашней даты в Bash: Практическое руководство

Использование специальных гелей при мышечных болях

🐧 Сравнение команд Printf и Echo на Linux

📦 Как расширить/увеличить файловую систему VxFS на Linux

Услуги по размещению серверного оборудования в ЦОД

Leave a Comment Cancel Reply

• Свежие записи

• Категории

• Теги

• itsecforu.ru

• Страны посетителей

IT is good

В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…

В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…

Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…

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

Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…

Источник

Оцените статью
Adblock
detector