Вы ищете
set display=lastline " Show as much as possible of a wrapped last line, not just "@".
Поместите это в Ваш ~/.vimrc
.
Сработало следующее: Было бы здорово узнать о любом другом решении awk или sed ...
perl -pe 's#(\d{1,}[.]\d{1,})(-)#$2$1#'g file
То же, что и команда perl,
$ sed 's/\([0-9]\+\.[0-9]\+\)-/-\1/g' file
0.00,-70440.19,-18.31,0.00,-451.59,-13788.77,-44.19,-6289.29
-1.03,-39.24,-0.11,-16.96,0.00,-72377.70,0.00,-146673.67,-59.11,0.00
Другой однострочник perl,
$ perl -pe 's/([^,\n]*?)-/-\1/g' file
0.00,-70440.19,-18.31,0.00,-451.59,-13788.77,-44.19,-6289.29
-1.03,-39.24,-0.11,-16.96,0.00,-72377.70,0.00,-146673.67,-59.11,0.00
Другой perl
perl -F, -lane 'print join ",", map {(/-$/ && chop) . $_} @F' file
Вот несколько:
Более короткий perl
perl -pe 's / ([\ d.] +) - / - файл $ 1 / g '
(GNU) sed
sed -r 's / ([0-9.] +) - / - \ 1 / g' файл
Любой файл sed
sed 's / \ ([0-9.] * \) - / - 1 \ 1 / g'
Гок. Обратите внимание, что различные варианты awk не очень хороши для задач, связанных с захватом шаблонов. GNU awk (gawk) и другие могут это сделать, но вместо этого я бы использовал одно из вышеперечисленных решений.
gawk -F, '{
for (i = 1; i
Я уверен, что должен быть лучший способ сделать это с помощью awk, но приведенный выше будет работать, несмотря на то, что он уродлив и громоздок.
Излишне сложный
perl -pe 's / \ n / \ n \ n /; с /, / \ п / г; 'файл |
awk -F "-" '/ - / {printf "-";} {print $ 1}' |
perl -000ne 's / \ n ./,/ g; s / \ n \ n / \ n / g; Распечатать'