Показать символ в позиции в файле

Я хотел бы напечатать символ в заданной позиции, используя только командную строку. Например:

<command> 5 

Выпустил бы, если 5-й символ этого файла был.

Поскольку я имею дело с большими файлами, в идеале это может обрабатывать большие файлы.

  • Извлечь строку, если первое поле содержит точку
  • Замените строку без учета регистра во всех файлах папок
  • sed удалять пространство
  • Объединение строк текста с повторным началом
  • Получить номера строк для пустых строк
  • Количество вхождений в текстовом файле, где первый символ после 12-го канала равен 1?
  • Удалить определенные номера строк (переданные как переменные) из файла в linux
  • распечатать, если следующая строка содержит
  • 3 Solutions collect form web for “Показать символ в позиции в файле”

    С sed :

     $ echo 12345 | sed 's/.\{4\}\(.\).*/\1/;q' 5 $ echo 1234ắ | sed 's/.\{4\}\(.\).*/\1/;q' ắ 

    Обратите внимание, что sed не сможет выдавать выходные данные, если вы вводите недопустимые многобайтные символы в текущей локали. Вы можете использовать LC_ALL=C если вы работаете только с одиночными байтовыми символами.

    С файлом ASCII вы также можете использовать dd :

     $ echo 12345 | dd bs=1 skip=4 count=1 2>/dev/null 5 

    Если вы хотите 5-й байт, считая от 1:

     dd ibs=1 skip=4 count=1 

    или

     tail -c +5 | head -c 1 

    Обратите внимание, что tail подсчитывается от 1, поэтому с учетом файла, содержащего abcdefg , это печатает e .

    dd и tail -c находятся в POSIX. head -c является общим, но не находится в POSIX; это в GNU coreutils, BusyBox, FreeBSD и NetBSd, но не в OpenBSD или Solaris.

    Или используя (gnu) grep:

     grep -zoP '.{4}\K.' file 

    ( -z использовалось для обработки \n до 5-го символа)

    Interesting Posts

    Как я могу scp файл, который мой пользователь не может прочитать, но я могу sudo?

    Использование «зарезервированных» кодов для статуса выхода сценариев оболочки

    Переменные среды не попадают в bash_profile

    Велоспорт через * Буферный список * с Cn, Cp

    Доступ к Linux после установки другой ОС

    Команда объединения дает неверный вывод?

    grub-install: ошибка: не удается найти каталог efi

    постоянное имя сетевого интерфейса и kvm

    Два раздела жесткого диска с тем же именем приводят к неопределенным каталогам

    Как добавить заголовок лицензии рекурсивно для всех файлов .h и .cpp в каталоге

    PuTTY может получить доступ к последовательному порту как / dev / ttyUSB0, но не как именованное устройство udev

    Gentoo, похоже, не загружает новое ядро

    systemd: Почему эта служба неактивна (мертва)?

    «Xdg-mime query filetype» возвращает другой тип файла, чем «file -mime-type»

    Список доступных обновлений, но не устанавливайте их

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