Всеки знак или низ може да бъде заменен с помощта на командата `sed`. Понякога трябва да заменим символа за нов ред ( n) във файл със запетая. В тази статия използваме командата `sed`, за да заменим n със запетая.
Използвайте `sed`, за да замените n със запетая
При замяна на n със запетая могат да възникнат много проблеми. По подразбиране всеки ред завършва с n при създаване на файл. Командата `sed` може лесно да се раздели на n и да замени новия ред с всеки знак. Друг разделител може да се използва вместо n, но само когато се използва GNU sed. Когато n липсва в последния ред на файла, GNU sed може да избегне отпечатването n. Освен това n обикновено се добавя към всеки пореден изход на `sed`.
Създайте файл
В тази статия ще ви покажем как да използвате командата `sed`, за да замените n със запетая. За да следвате този урок, създайте текстов файл с име Clients.txt със следната таблична информация за клиента.
документ за самоличност | Име | електронна поща | Телефон |
---|---|---|---|
c01 | Md. Ракиб | [защитен имейл] | 01856233238 |
c02 | Мехер Афрозе | [защитен имейл] | 01733536342 |
c03 | Факрул Ахсан | [защитен имейл] | 01934737248 |
c04 | Хелал Уддин | [защитен имейл] | 01534895898 |
c05 | Нусрат Джахан | [защитен имейл] | 01866345254 |
Пример 1: Заменете n със запетая, използвайки -z
Опцията -z се използва за преобразуване на n в нулевия знак ( 0). Съдържанието на файла се третира като един ред, ако не съдържа нулеви знаци. Командата `sed` ще преобразува новия ред в нулев знак и ще замени всеки n със запетая, като използва първия модел за търсене и замяна. Тук „g“ се използва за глобално търсене на n. С втория модел за търсене и замяна последната запетая ще бъде заменена с n.
$коткаClients.txt
$sed -С 's/ n/,/g; s/, $/ n/'Clients.txt
Следният изход ще бъде произведен след изпълнение на командите.
Пример 2: Заменете n със запетая, използвайки a, b, $! и Н.
Командата `sed` може да се използва за замяна на n със запетая чрез използване a, b, N и $! . Тук, да се се използва за добавяне на задачи, б се използва за разклоняване на съдържанието, н се използва за преминаване към следващия ред и $! се използва, за да се предотврати прилагането на задачата за подмяна към последния ред. Командата ще замени всяка н със запетая, с изключение на последния ред.
$коткаClients.txt
$sed ': a; N; $! ba; s/ n/,/g'Clients.txt
Следният изход ще бъде произведен след изпълнение на командите.
Пример 3: Заменете n със запетая, използвайки H, h, d, x и y
Ако искате да замените н) със запетая в малък файл, тогава може да се използва следната команда `sed`. Тук, З се използва за добавяне на последния ред към задържащия текст, 1h се използва за копиране на всеки ред от файла в задържащия текст от първия ред, $! d се използва за изтриване на всички редове с изключение на последния ред, х се използва за обмен на задържащ текст и пространство за шаблони и и се използва за замяна на всяка н в задържания текст със запетая.
$коткаClients.txt$sed 'H; 1h; $! D; x; y/ n/,/'Clients.txt
Следният изход ще бъде произведен след изпълнение на командите.
Пример 4: Заменете n със запетая, използвайки -n, H, h, g и p
Командата `sed` може да се използва за замяна н със запетая с -н опция, която предотвратява автоматичния печат. Както в предишния пример, З се използва тук за добавяне на последния ред към задържащия текст, 1ч се използва за копиране на всеки ред от файла в задържащия текст, $ се отнася до последния ред на файла, g се използва за копиране от задържащия текст и стр се използва за печат.
$коткаClients.txt$sed-н'H; 1h; ${g; s /н/,/личен лекар}'Clients.txt
Следният изход ще бъде произведен след изпълнение на горните команди.
Пример 5: Заменете n със запетая, използвайки H, x, p
H, x и p са обяснени в предишни примери. Първият израз за търсене и замяна ще замени всеки н със запетая, а вторият израз за търсене и замяна ще замени запетая в началото на ред с интервал.
$коткаClients.txt$sed-н'H; $ {x; s/ n/,/g; s/^, //; p;}'Clients.txt
Следният изход ще бъде произведен след изпълнение на горните команди.
Пример 6: Заменете n със запетая, използвайки N и `cat '
Командата `cat` се използва тук за изпращане на съдържанието на файла до командата` sed` и н се използва за преминаване към следващия ред.
$коткаClients.txt$коткаClients.txt| sed 'N; s/ n/,/'
Следният изход ще бъде произведен след изпълнение на горните команди.
Заключение
Може да се наложи да замените n със запетая, за да прехвърлите данни от един файлов формат в друг. Този вид замяна може да се извърши и с помощта на други команди на Linux. Много опции за команда, като H, N, h и x, могат да бъдат използвани с командата `sed` за изпълнение на тази задача. Този урок разглежда няколко начина да използвате командата `sed`, за да замените n със запетая.