Gostaria de imprimir o caractere em uma determinada posição usando apenas a linha de comando. Por exemplo:
<command> 5
Produziria a
se o quinto caractere desse arquivo fosse a
.
Como estou lidando com arquivos grandes, idealmente isso seria capaz de lidar com arquivos grandes.
command-line
text-processing
testTester
fonte
fonte
sed 's/.\{4\}\(.\).*/\1/;q' file
Se você deseja o 5º byte, contando de 1:
ou
Observe que
tail
conta a partir de 1, portanto, dado um arquivo que contémabcdefg
, isso é impressoe
.dd
etail -c
estão no POSIX.head -c
é comum, mas não está no POSIX; está no GNU coreutils, BusyBox, FreeBSD e NetBSd e mas não no OpenBSD ou Solaris.fonte
cat file | tail -c +5 | head -c 1
Ou usando (gnu) grep:
(
-z
foi usado para lidar\n
antes do quinto char)fonte