Я использую отличную утилиту командной строки UNIX 'comm' в приложении, которое я разработал на платформе BSD (OSX). При развертывании на моем производственном сервере Linux я обнаружил, что, к сожалению, утилита comm в Ubuntu Linux не принимает флаг -i, чтобы указать, что строки должны сравниваться без учета регистра. Очевидно, стандарт POSIX не требует опции -i.
Итак ... я в безвыходном положении. Мне действительно нужна опция -i, которая так хорошо работает на BSD. Я зашел так далеко, чтобы попытаться скомпилировать исходный код BSD comm.c для Linux, но получил:
http://svn.freebsd.org/viewvc/base/user/luigi/ipfw3-head/usr.bin/comm/comm.c?view=markup&pathrev=200559
me@host:~$ gcc comm.c
comm.c: In function ‘getline’:
comm.c:195: warning: assignment makes pointer from integer without a cast
comm.c: In function ‘wcsicoll’:
comm.c:264: warning: assignment makes pointer from integer without a cast
comm.c:270: warning: assignment makes pointer from integer without a cast
/tmp/ccrvPbfz.o: In function `getline':
comm.c:(.text+0x421): undefined reference to `reallocf'
/tmp/ccrvPbfz.o: In function `wcsicoll':
comm.c:(.text+0x691): undefined reference to `reallocf'
comm.c:(.text+0x6ef): undefined reference to `reallocf'
collect2: ld returned 1 exit status
У кого-нибудь есть предложения, как получить версию comm для Linux, которая поддерживает 'comm -i'?
Спасибо!