Можно, например, использовать следующее:
$ awk '/H/{sub("H", "H"++v)}1' file
1562 first part
1563 H1 col3 H col4
1564 H2 col3 H col4
3241 H3 col3 H col4
3242 third part
...
Это ищет те строки, которые содержат H
и заменяет H
на H
вместе с переменной, которую мы продолжаем инкрементировать. Обратите внимание, что вы можете использовать gsub()
вместо sub()
, если хотите выполнить это изменение во всех совпадающих шаблонах, а не в одном.
Последнее 1
является истинным условием, следовательно, оно выполняет действие awk по умолчанию: {печать $0}
, то есть печатает полную линию.
Кроме того, команды busybox не всегда имеют симлинк на busybox, или могут отсутствовать в вашем PATH. На RHEL6 работает "busybox stat -f /dev/XXXX".
Многие компоненты BusyBox не являются обязательными. В зависимости от того, какой компромисс между размером и функциональностью был достигнут во время компиляции, утилиты и параметры могут быть доступны или недоступны.
В Linux вы можете получить информацию о файловой системе из / proc
. Запустите df -P / some / file
, чтобы найти точку монтирования для / some / file
, затем найдите ее в / proc / mounts
и извлеките тип файловой системы. . Предполагая, что у вас есть awk и нет пробелов в точках монтирования, следующая команда выводит тип файловой системы, в которой находится / some / file
:
</proc/mounts awk -v mount_point="$(df -P /some/file | awk 'NR==2 {print $6}')" '$2 == mount_point {print $3}'
Вам необходимо включить stat
и du
в .config
перед сборкой:
CONFIG_DU=y
CONFIG_STAT=y
Если busybox help
показывает stat
, это означает, что апплет реализован. И если stat
возвращает "не найдено", то может быть просто ссылка для него на busybox
не создана (а busybox настроен на выполнение файлов при вызове апплетов).
Затем, поскольку вы можете запустить busybox help
, вы также сможете запустить busybox stat
в качестве альтернативы stat
:
busybox stat -fc %T /