LINUX.ORG.RU

знатокам sed - удалить все пробелы из первых 30 символов каждой строки файла.


0

0

Есть файл - в первых скажем 30 символах есть пробелы - их нужно удалить, не трогая остальные части строки. Строк в фале много. Т.е. было:

123 123 1231231231231123 123435655654765476585

Стало: 1231231231231231231123123435655654765476585

Спасибо, что уделили время.

perl -np -e 'substr($_,0,30)=~s/ //g'

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

sed ':BEGIN;s/^\([^ ]\{0,29\}\) /\1/;tBEGIN'

Хотя… Может быть, это решение не совсем этой задачи. (: Понимать ли, что в результате выполнения команды среди первых 30-ти символов не должно остаться пробелов? Например, если пробелы второй, третий, седьмой и тридцать первый, нужно ли удалить тридцать первый? Мой вариант удалит…

anarquista ★★★★★
()

sed 'h; s/^\(.\{30\}\).*/\1/;s/ //g; x; s/^.\{30\}//;x;G;s/\n//'

А этот вариант, наверное, более правильный. Удаляет пробелы из первых тридцати символов __исходной__ строки.

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