Сколько раз в первом столбце файла у него есть буква / номер?

"в конце концов будет переустановлен" Не с инструментом от Ubuntu. Вы можете создать резервную копию разделов диска, но повторная установка из них невозможна. Сбрасывание диска обратно в раздел возможно, но это не переустанавливается. Если, например, ваше аппаратное обеспечение изменилось, это плохая идея для восстановления дампа диска в Windows. Linux меньше подвержен ошибкам, так как мы используем общие драйверы.

Какой бы инструмент вы его ни выбрали, вероятно, будет использоваться dd.

Этот

dd if=/dev/sdh2 | gzip -c  > /image.img

скопирует sdh2 в сжатый файл на ваш корень называется image.img.gz. И

gunzip -c /image.img.gz | dd of=/dev/sdh2

помещает содержимое /image.img.gz в sdh2, разрушающее то, что в настоящее время находится на sdh2.

Убедитесь, что в месте назначения достаточно места (а затем и некоторых) делая это. Никогда не используйте dd в активном разделе. Измените местоположение файла изображения на / media / $ USER / mountpoint / если у вас есть USB с достаточным пространством для копирования файла на этот USB. Если вы используете раздел в качестве места назначения, он будет уничтожен. Если вы помещаете неправильный раздел в качестве места назначения, который уходит, если вы выберете неправильный. Навсегда. Опечатка 1 буквы или 1 цифры в имени устройства является фатальной. Всегда следите за тем, чтобы вы могли восстановить резервную копию своих личных данных. Я использовал sdh2 как случайный раздел. Измените его на свой раздел Windows.

Когда дело доходит до таких вещей, я предлагаю следовать плану, в котором вы можете переустановить свою систему с установочного носителя: я восстанавливаю свой Ubuntu в течение 15 минут, когда я format / and / home (оба на ssd; my / home / $ USER не имеют нормальных каталогов) и монтируют раздел (1Tb hdd) с моими файлами. В этом частном разделе также хранятся файлы в / home / $ USER /. Hdd теперь находится внутри 3 ноутбуков (все они умерли по разным причинам). Чтобы закончить мою переустановку, у меня есть список команд в скрипте для добавления и удаления программного обеспечения и для изменения настроек. Этот метод работает не только для поврежденных операционных систем, но и для перехода к следующей версии: я только переустанавливаю.

0
задан 5 March 2018 в 13:46

9 ответов

Легко захватить строки, которые не начинаются с пробелов, с чем-то вроде awk:

$ awk '/^\S/' test
ZC12A_MOUSE Mus musculus    Q5D1E7  PDB; 2N5J; NMR; -; A=45-89.
ZHX1_HUMAN  Homo sapiens    Q9UKY1  PDB; 2ECB; NMR; -; A=565-640.
ZHX2_HUMAN  Homo sapiens    Q9Y6X8  PDB; 2DMP; NMR; -; A=524-599.

Если вы просто хотите считать это, вы можете передать это в wc -l, который подсчитывает строки из ввода:

$ awk '/^\S/' test | wc -l
3

Вы также можете делать более сложные вещи с awk - именно поэтому я выбрал его - как разделение первого поля из строк без начальных пробелов:

[ f3]

И оттуда вы можете подсчитать уникальные экземпляры каждого из них. Единственное условие для этого - вам нужно сначала отсортировать его. К счастью, есть инструменты для всего этого в базовой установке:

$ awk '/^\S/ {print $1}' test | sort | uniq -c
      1 ZC12A_MOUSE
      1 ZHX1_HUMAN
      1 ZHX2_HUMAN
1
ответ дан 22 May 2018 в 12:45

Легко захватить строки, которые не начинаются с пробелов, с чем-то вроде awk:

$ awk '/^\S/' test ZC12A_MOUSE Mus musculus Q5D1E7 PDB; 2N5J; NMR; -; A=45-89. ZHX1_HUMAN Homo sapiens Q9UKY1 PDB; 2ECB; NMR; -; A=565-640. ZHX2_HUMAN Homo sapiens Q9Y6X8 PDB; 2DMP; NMR; -; A=524-599.

Если вы просто хотите считать это, вы можете передать это в wc -l, который подсчитывает строки из ввода:

$ awk '/^\S/' test | wc -l 3

Вы также можете делать более сложные вещи с awk - именно поэтому я выбрал его - как разделение первого поля из строк без начальных пробелов:

$ awk '/^\S/ {print $1}' test ZC12A_MOUSE ZHX1_HUMAN ZHX2_HUMAN

И оттуда вы можете подсчитать уникальные экземпляры каждого из них. Единственное условие для этого - вам нужно сначала отсортировать его. К счастью, есть инструменты для всего этого в базовой установке:

$ awk '/^\S/ {print $1}' test | sort | uniq -c 1 ZC12A_MOUSE 1 ZHX1_HUMAN 1 ZHX2_HUMAN
1
ответ дан 17 July 2018 в 19:30

Легко захватить строки, которые не начинаются с пробелов, с чем-то вроде awk:

$ awk '/^\S/' test ZC12A_MOUSE Mus musculus Q5D1E7 PDB; 2N5J; NMR; -; A=45-89. ZHX1_HUMAN Homo sapiens Q9UKY1 PDB; 2ECB; NMR; -; A=565-640. ZHX2_HUMAN Homo sapiens Q9Y6X8 PDB; 2DMP; NMR; -; A=524-599.

Если вы просто хотите считать это, вы можете передать это в wc -l, который подсчитывает строки из ввода:

$ awk '/^\S/' test | wc -l 3

Вы также можете делать более сложные вещи с awk - именно поэтому я выбрал его - как разделение первого поля из строк без начальных пробелов:

$ awk '/^\S/ {print $1}' test ZC12A_MOUSE ZHX1_HUMAN ZHX2_HUMAN

И оттуда вы можете подсчитать уникальные экземпляры каждого из них. Единственное условие для этого - вам нужно сначала отсортировать его. К счастью, есть инструменты для всего этого в базовой установке:

$ awk '/^\S/ {print $1}' test | sort | uniq -c 1 ZC12A_MOUSE 1 ZHX1_HUMAN 1 ZHX2_HUMAN
1
ответ дан 23 July 2018 в 20:15

Вы можете использовать grep:

grep -c '^[[:alnum:]]' input-file

^ - начало строки, [[:alnum:]] соответствует алфавиту или номерам (короткий для буквенно-цифровых), а -c делает grep распечатать счет.

1
ответ дан 22 May 2018 в 12:45
  • 1
    \S (а не пробел) будет работать здесь, а не [[:alnum:]] – Oli♦ 5 March 2018 в 13:52
  • 2
    @Oli да, возможно. Поскольку OP сказал алфавиты или цифры, я думал, чтобы играть в нее безопасно. – Olorin 5 March 2018 в 13:53
  • 3
    это сработало! благодаря! – sergio 5 March 2018 в 14:17

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

Так, например, чтобы напечатать количество записей (блоков) в вашем файле, вы можете просто отключить RS, а затем распечатать количество записей, обработанных в конце:

awk -vRS= 'END {print NR}' file
[d3 ] Если вы хотите напечатать первое поле каждой многострочной записи, это просто

$ awk -vRS= '{print $1}' file
ZC12A_MOUSE
ZHX1_HUMAN
ZHX2_HUMAN

и т. Д. - без необходимости прибегать к регулярному соответствию выражения.

1
ответ дан 22 May 2018 в 12:45

Вы можете использовать grep:

grep -c '^[[:alnum:]]' input-file

^ - начало строки, [[:alnum:]] соответствует алфавиту или номерам (короткий для буквенно-цифровых), а -c делает grep распечатать счет.

1
ответ дан 17 July 2018 в 19:30

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

Так, например, чтобы напечатать количество записей (блоков) в вашем файле, вы можете просто отключить RS, а затем распечатать количество записей, обработанных в конце:

awk -vRS= 'END {print NR}' file

Если вы хотите напечатать первое поле каждой многострочной записи, это просто

$ awk -vRS= '{print $1}' file ZC12A_MOUSE ZHX1_HUMAN ZHX2_HUMAN

и т. Д. - без необходимости прибегать к регулярному соответствию выражения.

1
ответ дан 17 July 2018 в 19:30

Вы можете использовать grep:

grep -c '^[[:alnum:]]' input-file

^ - начало строки, [[:alnum:]] соответствует алфавиту или номерам (короткий для буквенно-цифровых), а -c делает grep распечатать счет.

1
ответ дан 23 July 2018 в 20:15
  • 1
    \S (а не пробел) будет работать здесь, а не [[:alnum:]] – Oli♦ 5 March 2018 в 13:52
  • 2
    @Oli да, возможно. Поскольку OP сказал алфавиты или цифры, я думал, чтобы играть в нее безопасно. – Olorin 5 March 2018 в 13:53
  • 3
    он работал! спасибо! – sergio 5 March 2018 в 14:17

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

Так, например, чтобы напечатать количество записей (блоков) в вашем файле, вы можете просто отключить RS, а затем распечатать количество записей, обработанных в конце:

awk -vRS= 'END {print NR}' file

Если вы хотите напечатать первое поле каждой многострочной записи, это просто

$ awk -vRS= '{print $1}' file ZC12A_MOUSE ZHX1_HUMAN ZHX2_HUMAN

и т. Д. - без необходимости прибегать к регулярному соответствию выражения.

1
ответ дан 23 July 2018 в 20:15

Другие вопросы по тегам:

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