LINUX.ORG.RU

echo "sdfsd sdfsdf dsfsdf" | sed s/' '//g
sed s/' '//g -i <file_name>
kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Не могли бы Вы мне разъяснить суть каждой составляющей этой команды?

Vekt ()
Ответ на: комментарий от kostik87

Нет, вы, кажется, не поняли. Уже есть файл с текстом, как в нем выпилить все пробелы?

Vekt ()
Ответ на: комментарий от Vekt

Вообще все пробелы и только пробелы:

sed s/' '//g -i <file_name>

Все пробелы и символы табуляции так:

sed s/'\s'//g -i <file_name>

Только символы табуляции так :

sed s/'\t'//g -i <file_name>

kostik87 ★★★★★ ()
Ответ на: комментарий от Vekt

Замена нескольких пробелов одним:

sed "s/ \{2,5\}/ /g" -i <file_name> 

В данном случае от 2 до 5 стоящих подряд пробелов заменяются одним.

kostik87 ★★★★★ ()
Ответ на: комментарий от Vekt

Это регулярные выражения, при чём простые.

  • s/// - замена
  • после «s/ и перед \{ указан символ, в данном случае пробел, ' ' - можно и так
  • \{2,5\} - число повторений блоков символов, указанные перед интервалом
  • \ - экранирование, что бы { и } не рассматривались как конструкции интерпретатоа (bash)
  • g - все включения в файла
  • -i - работать с файлом
kostik87 ★★★★★ ()
Ответ на: комментарий от Vekt

man Регулярные_выражения

Ну или простой способ проникнуться:

echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' 
под рутом

redgremlin ★★★★★ ()
Ответ на: комментарий от kostik87

\ - экранирование, что бы { и } не рассматривались как конструкции интерпретатоа (bash)

в пределах «» они и не рассматриваются. просто posix re требуют их экранировать
в extended posix re их не нужно экранировать, для этого у сед есть ключик -r

не надо трясти своим невежеством в очередной раз

anonymous ()
Ответ на: комментарий от redgremlin

Я читал про это. Мне не нужен патч Бармина-все пока не так плохо

Vekt ()
Ответ на: комментарий от kostik87

g - все включения в файла

4.2. в строке

anonymous ()
Ответ на: комментарий от kostik87

\{2,5\} - число повторений блоков символов, указанные перед интервалом

не «блоков символов» а регулярных выражений, там можно воткнуть (as*df){6,66}

жги дальше, малыш

anonymous ()
Ответ на: комментарий от anonymous

Такой способ требует использования промежуточного файла, с sed -i проще.

kostik87 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.