Парсинг вывода ls
редко хорошая идея, но получение первых нескольких полей является исключением, оно на самом деле работает над всеми “традиционными” нельдами (оно не работает над платформами, такими как некоторые реализации Windows, которые позволяют пробелы в именах пользователей).
ls -ld /path/to/directory | awk 'NR==1 {print $3}'
Другая опция состоит в том, чтобы использовать a stat
команда, но проблема с stat
от оболочки то, что существует несколько команд с другим синтаксисом, таким образом, stat
в сценарии оболочки является непортативным (даже через установки Linux).
Обратите внимание, что тестирование, является ли данный пользователь владельцем, является другим суждением.
if [ -n "$(find . -user "$username" -print -prune -o -prune)" ]; then
echo "The current directory is owned by $username."
fi
if [ -n "$(find . -user "$(id -u)" -print -prune -o -prune)" ]; then
echo "The current directory is owned by the current user."
fi
Попытайтесь использовать hexedit, я не попробовал его на HP-UX, но он должен работать. Это позволяет Вам перемещаться в местоположение в файле и усеченный. Я вполне уверен, что это не читает целый файл в, но просто ищет на соответствующее местоположение для дисплея.
Использование довольно просто, после того как Вы запустили его, клавиши со стрелками позволяют Вам перемещаться. F1 дает справку. Ctrl-G перемещается в местоположение в файле (подсказка: для перемещения для окончания используют размер файла от нижнего ряда дисплея). Расположите курсор на первый байт, что Вы хотите усечь и затем нажать Escape T, после того как Вы подтверждаете, что усеченное будет сделано. Выходы Ctrl-x.
Сократите 2 килобайта из конца файла:
truncate -s-2K file
Можно использовать dd, например:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Можно использовать split
или ed
, awk
или любой язык программирования.
Используйте инструмент, который предоставляет Вам доступ к truncate
системный вызов. Можно сделать это только с инструментами POSIX. Предупреждение, введенный в браузер; будьте особенно осторожны как dd
является еще более непрощающим ошибок, чем обычная команда Unix. 123456 число байтов для хранения.
dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Версия Perl намного более читаема:
perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate