Получите символ в указанном местоположении

У меня есть файл, которые содержат 64 895 символов

In [95]: !wc -c 07.org                 
64895 07.org

Как я мог получить символ в положении 60000?

3
задан 19 November 2019 в 10:44

2 ответа

Существует эти cut команда для этого:

tr -d '\n' <  07.org | cut -c60000 

1-я часть удаляет новые строки; 2-я часть затем печатает 60000-й символ (но действительно пропускает символ новой строки поэтому, если они должны быть включены в количество к 60 000 этих работ привычки ;))

5
ответ дан 1 December 2019 в 13:05

Если файл имеет новые строки, то head и tail может использоваться для нахождения определенного байта. Для файла символов ASCII символы эквивалентны байтам, но неASCII unicode символы занимает несколько байтов. Кроме того, символы новой строки считаются. Получить байт в положении 60000:

$ head -c 60000 file.txt | tail -c -1

, Чтобы видеть, как это работает, следующий цикл смотрит на первые 9 байтов:

$ # First the data layout
$ echo  

Байты 4 и 7 являются символами новой строки.

123\n56\n89' 123 56 89 $ # Now get the first 9 bytes in turn $ for i in `seq 9`; do c=`echo

Байты 4 и 7 являются символами новой строки.

123\n56\n89' | head -c $i | tail -c -1` ; echo "$i => |$c|"; done 1 => |1| 2 => |2| 3 => |3| 4 => || 5 => |5| 6 => |6| 7 => || 8 => |8| 9 => |9|

Байты 4 и 7 являются символами новой строки.

6
ответ дан 1 December 2019 в 13:05

Другие вопросы по тегам:

Похожие вопросы: