Замените все кроме ряда символов в файле с новой строкой

Необходимо смотреть в ~/.local/share/applications/defaults.list под [Default Applications]. Там необходимо установить text/plain указать на .desktop запись для vim, который обычно располагается в /usr/share/applications/. Например:

text/plain=gvim.desktop
2
15.11.2012, 21:22
5 ответов

Это - классик tr вариант использования, таким образом, самый простой путь:

tr -cs '[:digit:].' '[\n*]' < input > output

[:digit:]. аргумент указывает символы для соответствия (цифры и точка). [\n*] указывает символы для замены (замените все новой строкой). -c опция инвертирует первый аргумент, так как мы хотим все кроме цифр и точки. -s сжимает последовательные новые строки от второй строки в одну.

4
27.01.2020, 21:57

grep может сделать это:

grep -o '[0-9.]\+'
1
27.01.2020, 21:57

Вот один путь с GNU sed:

sed ':a;{N;s/[^\.0-9]\+/\n/g};ba' file

Вот то, как это работает:

  1. Создайте маркировку ответвления;
  2. Добавьте текущую / следующую строку для регистрации;
  3. Ответвление, если не последняя строка;
  4. Замените все группы, которые не соответствуют новым строкам.

Используя ответвление избегает побочных новых строк.

0
27.01.2020, 21:57

Можно использовать sed заменять любой нежелательный символ к новой строке, и затем grep избавиться от пустых строк:

sed 's/[^0-9.]/\n/g' | grep . 

Обратите внимание, что результат отличается от того, который Вы отправили: 32 5.500.5.5 разделяется к двум строкам, а также последней строке.

Решение для Perl: это разделяет каждую строку на нежелательных символах и держит для непустых строк.

perl -ne 'print "$_\n" for grep /./, split /[^0-9.]+/'
0
27.01.2020, 21:57
  • 1
    Отметьте это \n выше в sed пример команды не является стандартным. Стандартный синтаксис для определения символа новой строки в RHS a s команда с обратной косой чертой, сопровождаемой символом новой строки. –  Stéphane Chazelas 15.11.2012, 21:39

на RHEL7:

заменить любую строку, начинающуюся с VALUETOEDIT

sed -i -e 's/^VALUETOEDIT.*/NEWVALUE/g' somefile
0
27.01.2020, 21:57

Теги

Похожие вопросы