Показаны сообщения с ярлыком Regular Expressions. Показать все сообщения
Показаны сообщения с ярлыком Regular Expressions. Показать все сообщения

Vim: убрать лишние пробелы в конце всех строк

Чтобы в Vim убрать лишние пробелы в конце всех строк, можно воспользоваться командой:
:%s/\s\+$//
команда %s аналогична команде s в sed, о которую я упоминал в одном из предыдущих постов. Точно так же сначала следует регулярное выражение, которое определяет, что нужно найти, затем - то, на что найденные символы заменить. Части команды разделены символом /.
В данном случае регулярное выражение "\s\+$" описывает пробелы, в количестве один или больше, расположенные в конце строки. Вторая часть команды пустая, поэтому найденные пробелы будут просто удалены. Так же пустую часть команды можно опустить:
:%s/\s\+$
Ну и можно отредактировать vimrc так, чтобы эта замена происходила по нажатию на кнопку F5, если добавить в него строчку:
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR>

Linux: вывод в консоль всех чисел из файла

Для выборки всех чисел из файла воспользуемся утилитой grep:
grep -o "[0-9]" filename
[0-9] - регулярное выражение, в которое попадают только цифры от 0 до 9. Флаг -о заставляет grep выводить не всю найденную строку, а только то, что задано регулярным выражением. Проблема в том, что таким образом grep выведет все цифры, нам же нужны все числа. Нужно дописать регулярное выражение:
grep -oE "[0-9]{1,}" filename
Флаг -Е разрешает расширенные регулярные выражения (extended regexp), а {1,} определяет длину предыдущего выражения. В нашем случае, будут найдены все последовательности из цифр длиной от одного символа и больше, то есть все числа. Можно также ограничить максимальную длину числа (например, не больше 5 цифр), указав верхнюю границу в выражении:
grep -oE "[0-9]{1,5}" filename
В следующем посте пример того, как обработать полученный вывод.