сед

Как да заменим Newline със запетая, използвайки командата 'sed'

Как да заменим Newline със запетая, използвайки командата 'sed'

Всеки символ или низ могат да бъдат заменени с помощта на командата 'sed'. Понякога трябва да заменим символа за нов ред (\ n) във файл със запетая. В тази статия използваме командата 'sed', за да заменим \ n със запетая.

Използване на 'sed' за замяна на \ n със запетая

Много проблеми могат да възникнат при замяна на \ n със запетая. По подразбиране всеки ред завършва с \ n при създаване на файл. Командата 'sed' може лесно да се раздели \ n и да замени новия ред с всеки символ. Друг разделител може да се използва вместо \ n, но само когато се използва GNU sed. Когато \ n липсва в последния ред на файла, GNU sed може да избегне отпечатването \ n. Освен това \ n обикновено се добавя към всеки пореден изход на 'sed'.

Създайте файл

В тази статия ще ви покажем как да използвате командата 'sed', за да замените \ n със запетая. За да продължите заедно с този урок, създайте текстов файл с име Клиенти.текст със следната таблична информация за клиента.

документ за самоличност Име електронна поща Телефон
c01 Md. Ракиб [имейл защитен] 01856233238
c02 Мехер Афрозе [имейл защитен] 01733536342
c03 Факрул Ахсан [имейл защитен] 01934737248
c04 Хелал Удин [имейл защитен] 01534895898
c05 Нусрат Джахан [имейл защитен] 01866345254

Пример 1: Заменете \ n със запетая, като използвате -z

Опцията -z се използва за конвертиране на \ n в нулевия знак (\ 0). Съдържанието на файла се третира като един ред, ако не съдържа никакви символи null. Командата 'sed' ще преобразува новия ред в нулев символ и ще замени всеки \ n със запетая, като използва първия шаблон за търсене и замяна. Тук „g“ се използва за глобално търсене на \ n. С втория шаблон за търсене и замяна, последната запетая ще бъде заменена с \ n.

$ cat Клиенти.текст
$ sed -z 's / \ n /, / g; s /, $ / \ n /' Клиенти.текст

След изпълнението на командите ще се получи следният изход.

Пример 2: Заменете \ n със запетая, като използвате a, b, $! и N

Командата 'sed' може да се използва за замяна на \ n със запетая чрез a, b, N и $!. Тук, а се използва за добавяне на задачи, б се използва за разклоняване на съдържанието, н се използва за преминаване към следващия ред и $! се използва, за да се предотврати прилагането на задачата за замяна към последния ред. Командата ще замени всяка със запетая, с изключение на последния ред.

$ cat Клиенти.текст
$ sed ': a; N; $!ba; s / \ n /, / g 'Клиенти.текст

След изпълнението на командите ще се получи следният изход.

Пример 3: Заменете \ n със запетая, като използвате H, h, d, x и y

Ако искате да замените \н) със запетая в малък файл, тогава може да се използва следната команда 'sed'. Тук, З се използва за добавяне на последния ред към текста на задържането, 1h се използва за копиране на всеки ред от файла към текста на задържането от първия ред, $!д се използва за изтриване на всички редове с изключение на последния ред, х се използва за обмен на текст за задържане и пространство на шаблон, и у се използва за замяна на всеки в задържащия текст със запетая.

$ cat Клиенти.текст
$ sed 'H; 1h; $!d; x; y / \ n /, / 'Клиенти.текст

След изпълнението на командите ще се получи следният изход.

Пример 4: Заменете \ n със запетая, като използвате -n, ​​H, h, g и p

Командата 'sed' може да се използва за замяна със запетая със опция, която предотвратява автоматичния печат. Както в предишния пример, З се използва тук за добавяне на последния ред към текста на задържането, се използва за копиране на всеки ред от файла в задържания текст, $ се отнася до последния ред на файла, ж се използва за копиране от текста на холдинга и стр се използва за печат.

$ cat Клиенти.текст
$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Клиенти.текст

След изпълнението на горните команди ще се получи следният изход.

Пример 5: Заменете \ n със запетая, като използвате H, x, p

H, x и p са обяснени в предишни примери. Първият израз за търсене и замяна ще замени всеки със запетая, а вторият израз за търсене и замяна ще замени запетая в началото на ред с интервал.

$ cat Клиенти.текст
$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Клиенти.текст

След изпълнението на горните команди ще се получи следният изход.

Пример 6: Заменете \ n със запетая, като използвате N и 'cat'

Командата 'cat' се използва тук за изпращане на съдържанието на файла до командата 'sed' и н се използва за преминаване към следващия ред.

$ cat Клиенти.текст
$ cat Клиенти.txt | sed 'N; s / \ n /, /'

След изпълнението на горните команди ще се получи следният изход.

Заключение

Може да се наложи да замените \ n със запетая, за да прехвърлите данни от един файлов формат в друг. Този тип замяна може да се извърши и чрез използване на други команди на Linux. Много командни опции, като H, N, h и x, могат да се използват с командата 'sed' за изпълнение на тази задача. Този урок разглежда няколко начина за използване на командата 'sed', за да замени \ n със запетая.

Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...