Всеки символ или низ могат да бъдат заменени с помощта на командата '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' може да се използва за замяна \н със запетая със -н опция, която предотвратява автоматичния печат. Както в предишния пример, З се използва тук за добавяне на последния ред към текста на задържането, 1ч се използва за копиране на всеки ред от файла в задържания текст, $ се отнася до последния ред на файла, ж се използва за копиране от текста на холдинга и стр се използва за печат.
$ 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 със запетая.