Мне нужно заменить все пробелы внутри моего текста запятыми. В настоящее время я использую эту строку, но она не работает: я получаю в качестве вывода текстовый файл, который в точности совпадает с исходным:
sed 's/[:blank:]+/,/g' orig.txt > modified.txt
Спасибо
text-processing
aneuryzm
источник
источник
Ответы:
С
sed
:Или с
perl
:Редактировать: чтобы исключить новые строки в Perl, вы можете использовать двойной отрицательный знак
's/[^\S\n]+/,/g'
или совпадать только с символами пробела по вашему выбору's/[ \t\r\f]+/,/g'
.источник
+
оператора в sed, я только что обновил свой ответ. Символы новой строки - это whitepsace в perl, поэтому вам придется делать свой класс whitepsace вручную, если вы не хотите его включать. Я также добавил два решения для этого.Использование
tr
:Это заменит любой горизонтальный пробел запятой. Любые повторяющиеся пробелы будут заменены только одной запятой.
источник
Здесь имя файла - Серверы. Содержит содержимое ниже.
Если мы используем вышеуказанную команду, мы можем получить следующий вывод:
источник