Почему там различие между значением ЦИФРЫ в head -c
и tail -c
?
Я разъясню то, что я имею в виду со следующими командами:
$ echo "words" | tail -c +1
words
$ echo "words" | tail -c +2
ords
$ echo "words" | head -c -1
words$ echo "words" | head -c -2
word$
Первая команда ничего не делает.
Вторая команда удаляет первую букву.
Третья команда удаляет новую строку.
Последняя команда удаляет последние 2 символа включая новую строку.
То итак, почему действительно направляется, удаляет 2 байта при использовании -c
и хвост только один. Это похоже на некоторое реальное несоответствие или является там базовым значением?
Цитирование man tail
:
используйте-c +NUM для вывода запуска с ЦИФРЫ байта каждого файла
Цитирование man head
:
- c (…) [-] ЦИФРА
с продвижением '-', печатают все кроме последних ЦИФРОВЫХ байтов каждого файла (…)
Логика с
tail -c +1
должен распечатать все от числа байта 1
, т.е. первый байт, в то время как с
head -c -1
это должно распечатать все кроме последнего 1
байт.