Je voudrais imprimer le caractère à une position donnée en utilisant uniquement la ligne de commande. Par exemple:
<command> 5
Sortirait a
si le 5ème caractère de ce fichier était a
.
Étant donné que je traite de gros fichiers, ce serait idéalement capable de gérer de gros fichiers.
command-line
text-processing
testTester
la source
la source
sed 's/.\{4\}\(.\).*/\1/;q' file
Si vous voulez le 5ème octet, en comptant à partir de 1:
ou
Notez que
tail
compte à partir de 1, donc étant donné un fichier contenantabcdefg
, cela s'imprimee
.dd
ettail -c
sont en POSIX.head -c
est courant, mais n'est pas dans POSIX; c'est dans GNU coreutils, BusyBox, FreeBSD et NetBSd et pas dans OpenBSD ou Solaris.la source
cat file | tail -c +5 | head -c 1
Ou en utilisant (gnu) grep:
(a
-z
été utilisé pour traiter\n
avant le 5e caractère)la source