Use first available number from a file

Siempre se recomienda desmontar correctamente cualquier medio,todavía se puede abrir un archivo, por ejemplo

Puede obligar a los medios a montar solo lectura con opciones de comando de montaje dedicadas a opciones

mount -o ro /dev/media /example/path

puede usar las reglas de udev para forzar esta opción a cualquier medio externo... consulte esta publicación para saber cómo ¿Cómo puedo crear una regla de udev para montar una unidad USB de solo lectura?

-3
22.05.2017, 00:29
2 ответа
< xyz.config tail -n 1 | awk 'match($0, /[0-9]+$/) {
  print substr($0, 1, RSTART-1) substr($0, RSTART)+1}'

Чтобы получить последнюю строку файла, извлеките цифры в конце строки, напечатайте то, что предшествует цифрам, за которыми следует число, составляющее эти цифры, увеличенное на единицу.

Вы также можете сделать все это в awk, но это означает полное чтение всего файла:

< xyz.config awk 'END {if(match($0, /[0-9]+$/))
  print substr($0, 1, RSTART-1) substr($0, RSTART)+1}'

Использование операторов sh:

< xyz.config tail -n1 | (
  IFS= read -r line || exit
  num=${line##*[!0-9]}
  printf '%s\n' "${line%"$num"}$((num + 1))")
0
28.01.2020, 05:19

Short gawk решение:

awk -v FPAT="[0-9]+" 'END{print "node"$1+1}' xyz.config

Вывод:

node4

  • FPAT="[0-9]+" - регулярное выражение, которое соответствует полям, а не соответствует разделителю полей

  • END{...} - с учетом только последней строки файла

1
28.01.2020, 05:19

Теги

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