Добавьте круглые скобки вокруг чисел

Доступ к устройству через пути / dev / disk / by-xxx.

Эти пути остаются неизменными для устройства / раздела с символическими ссылками на собственно устройство / dev / sdXY, поддерживаемыми системой. Таким образом, хотя устройство может повторно подключиться к другому виртуальному устройству, путь, который вы можете использовать, не изменится.

/ dev / disk / by-uuid /

  • Каждый диск / устройство имеет уникальный UUID, поэтому использование пути, основанного на нем, всегда одинаково, независимо от того, к какому «устройству» он ведет. Например, моя система:

     xenon-lornix: /> ll / dev / disk / by-uuid /
    всего 0
    lrwxrwxrwx 1 root root 10 июн 10 02:33 24c80c49-3f88-4343-9b91-c34087e49102 -> ../../sda5
    lrwxrwxrwx 1 root root 10 июн 10 02:33 b2254550-cc90-46e4-a84f-cb32bca8f83d -> ../../sda1
     
  • Путь / dev / disk / by-uuid / b2254550-cc90-46e4-a84f-cb32bca8f83d всегда будет указывать на раздел 1 этого диска, независимо от того, sda / sdb / sdc и т. Д. .

Доступны и другие методы:

/ dev / disk / by-label /

    xenon-lornix:/> ll /dev/disk/by-label/
    total 0
    lrwxrwxrwx 1 root root 10 Jun 10 02:33 swap -> ../../sda5
    lrwxrwxrwx 1 root root 10 Jun 10 02:33 xenon -> ../../sda1

Я всегда помечаю свои разделы, что упрощает создание файлов / использование / монтирование определенного устройства, вместо того, чтобы думать, / dev / sdc - это WD 1 ТБ, Samsung 2 ТБ или флэш-накопитель 1 ГБ.

Также упрощает монтаж: (из / etc / fstab )

    LABEL=xenon   /   ext4   defaults,... and so forth

обходной путь может быть полезен, поскольку он технически связывает физическое соединение с конкретным устройством, возможно, полезно для вас, если диск не работает с правильной информацией о разделах, дает странные метки или что-то в этом роде.

1
19.03.2015, 01:28
3 ответа
xargs printf '(%d) ' <infile

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

0
27.01.2020, 23:51

Попробуйте SED :

sed -i.bak 's/[0-9]\+/(&)/g' file.txt

В этом SED замена, мы подставляем [0-9] \ + , то есть последовательных цифр с (&) , то есть скобки вокруг соответствующие цифры. G означает, что эта замена состоится для всех сопоставленных шаблонов, в противном случае она будет только заменить первый матч.

После операции модифицированный файл будет file.txt и исходный файл будет храниться как file.txt.bak . Это хорошая практика, чтобы сделать резервную копию исходного файла, если вы не хотите сделать резервную копию, просто используйте:

sed -i 's/[0-9]\+/(&)/g' file.txt
1
27.01.2020, 23:51

Использование awk для захвата цифры (не печатает пустые строки):

awk '{for(i=1; i<=NF; i++) if($i ~ /[[:digit:]]/) $i="("$i")"} NF{print}' file
0
27.01.2020, 23:51

Теги

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