OSX "vi" выглядит как vim. В сообщении о версии указано (для El Capitan ):
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 27 2015 16:22:14)
Compiled by root@apple.com
Normal version without GUI. Features included (+) or not (-):
Существует небольшая вероятность, что вы не используете vim, но никто не предложил подходящей альтернативы.
vim принимает последовательности клавиш курсора в режиме вставки.
Однако есть одна ловушка, если фактическое поведение терминала не соответствует описанию терминала, заданному с помощью переменной среды TERM
. Например, в описании терминала "linux" не используется режим приложения , и если вы установили TERM
на это значение при фактической работе в терминале, который был инициализирован для использования режим приложения , тогда vim не будет ожидать escape O B последовательность, так как он ищет escape [ ] B . В результате вы получите вставку B
при нажатии клавиши со стрелкой вниз.
Дополнительная литература:
Вот мое решение на Python.
with open('/path/to/file', 'r') as f:
for line in f:
x=line.split(',')
y=x[4].split('|')
print(','.join(x[:4]) + ',' + str(min(y, key=lambda z: abs(float(z)-float(x[5])))))
Если у вас есть что-то вроде Pyed Piper, также известного как pyp
, вы можете запустить его прямо из командной строки терминала:https://code.google.com/archive/p/pyp/
Поскольку требуется решение AWK, я предоставлю его.
awk -F, 'NF>4{
n=split($5,a,"|")
l=a[0];
for(i=1;i<n;i++)
if((a[i]-$6)^2<(l-$6)^2)
l=a[i];
print $1","$2","$3","$4","l
}' input > output