Я хотел бы напечатать символ в данной позиции, используя только командную строку. Например:
<command> 5
Будет выводить, a
если 5-й символ этого файла был a
.
Поскольку я имею дело с большими файлами, в идеале это будет возможность обрабатывать большие файлы.
command-line
text-processing
testTester
источник
источник
sed 's/.\{4\}\(.\).*/\1/;q' file
Если вы хотите 5-й байт, считая от 1:
или
Обратите внимание, что
tail
отсчитывается от 1, поэтому, учитывая файлabcdefg
, это печатаетe
.dd
иtail -c
находятся в POSIX.head -c
распространено, но не в POSIX; это в GNU coreutils, BusyBox, FreeBSD и NetBSd, но не в OpenBSD или Solaris.источник
cat file | tail -c +5 | head -c 1
Или используя (GNU) grep:
(
-z
раньше имел дело\n
до 5-го символа)источник