Vim - как заменить пробел после точки новой строкой?

Комплексное решение с использованием командыpasteи инструментаdatamash:

  1. Объединение всех файлов в один файл для дальнейшей обработки:

    paste [0-9]*.out | datamash transpose > data
    

    --datamash transpose-транспонирует строки в столбцы

  2. Получение общего количества полей:

    nf=`awk '{print NF; exit}' data`
    
  3. Расчет среднего и стандартного отклонения:

    for ((i=1; i<$nf; i++)); do datamash mean $i pstdev $i < data; done 
    

Вывод будет выглядеть так: (1-й столбец -среднее значение, 2-й столбец -ст. значение отклонения):

0.596477    0.11180339887499
0.589331    0.11180339887499
0.594394    0.11180339887499
0.575003    0.11180339887499
0.578981    0.11180339887499
0.569547    0.11180339887499
0.582834    0.11180339887499
.......

1
03.09.2019, 12:09
1 ответ

:%s/. /\n/g близок, но имеет три ошибки:

  • .соответствует любому символу. Чтобы соответствовать реальной точке, избегайте ее:\.
  • Если вы хотите сохранить точку, поместите ее в строку замены (как-то очевидно)
  • \n— нулевой символ. Используйте \rдля новой строки

Вместе это:

:%s/\. /.\r/g
2
27.01.2020, 23:30

Теги

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