Странное поведение

Я использую cut (GNU coreutils) 8.24 .

Команда: echo "TEST=test" | cut -d"=" -f2- echo "TEST=test" | cut -d"=" -f2- выводит Ttest . Я не думаю, что это предполагаемое поведение.

Я использую это неправильно или что-то не так с моим cut ?

  • Электронная почта dmesg
  • Ошибка сборки драйвера устройства: неверный формат модуля insmod
  • Компилировать ядро ​​Linux с динамическим (Un) загружаемым usbserial модулем
  • Pinnacle TV-тюнер, ошибка чтения, dvb_register не удалось, cx8802 не удалось пробить, прошивка никогда не загружается
  • Найдите случайный ядро ​​процессора
  • Есть ли способ монтировать блок памяти в качестве файловой системы в Linux?
  • Пользовательское ядро ​​для отключения SATA и USB-устройств
  • nl80211 не найден
  • One Solution collect form web for “Странное поведение”

    Проблемы с воспроизведением сводятся к провайдеру libc. А именно, кажется, что это ошибка в uclibc; см. https://bugs.busybox.net/show_bug.cgi?id=4099

    При определенных обстоятельствах вырезает печать первого символа поля 1 и всего поля 2, когда ему сообщается печатать поле 2 – так, например:

     printf "4123\t2\t3\t4\t5\n" | cut -f 2 

    распечатывает 42; а не только 2. Я бежал на этом разрезе, и он показал, что разрез печатает всю линию.

    Ошибка связана с тем, как она хочет обрабатывать линии без разделителей; поэтому работа вокруг теперь использует флаг «-s»; вот так:

     printf "4123\t2\t3\t4\t5\n" | cut -f 2 -s 

    который печатает «2», как и ожидалось.

    Я полагаю, что большинство людей сталкиваются с этим, используя buildroot; и я рекомендую изменить конфигурацию uclibc в соответствии с этой ссылкой. В основном это означает:

     make uclibc-menuconfig Select y for 'String and Stdio Support --> Provide a macro version of [getc|putc]' 

    обратите внимание, что, поскольку это изменяет реализацию libc; вероятно, разумно также перестроить в основном все.

    Linux и Unix - лучшая ОС в мире.