Как я эффективно выбираю определенные номера строки из списка записей?

Хорошо, я разрешил его. К счастью, все прекрасно, который был only проблема с загрузочным сектором. Отказ даже перед загрузкой ядра указал на меня к MBR, таким образом, я запустил систему со своего pendrive, сохраненного для таких случаев с портативной победой, Linux и несколькими инструментами, смонтировали мои диски (первое облегчение - файловая система была прекрасна), просто chrootредактор (посмотрите редактирование ниже) к моему регулярному корню и названный

lilo -v

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

Была та некоторая ошибка на моем SSD? Или некоторые космические лучи? Или возможно вирус? Я не знаю, если у кого-либо есть какая-либо идея, как воспроизвести ту ошибку, я счастливо попробую ее.

Править: Как @peterph записал, "это - Good Idea (TM) для привязки - монтируются /dev и /proc в соответствующие места в Вашем корневом разделе прежде chrooting в него" - благодарит заметить это.

3
10.12.2014, 01:48
2 ответа

Предположим, что linenumbers.txt имеет по одному номеру на строку

awk 'NR == FNR{a[$0]; next};FNR in a' linenumbers.txt sourcefile.csv > extractedrecords.tsv

Mould do the job.

Или, с bash

join  -t':' -o2.1,2.2  <(sort linenumbers.txt) <(awk '{print NR":"$0}' \
sourcefile.csv | sort -k1,1 -t':')  | sort -k1,1n -t':' | cut -f2- -d':'

Все дополнительные прыжки через обручи необходимы, потому что join не поддерживает числовые входные файлы

.
2
27.01.2020, 21:19

Вы находитесь на правильном треке с SED: все, что вам нужно сделать, это преобразовать свой список номеров строк, за которым следует следовать p и новой строкой, а также Используйте это как Sed Script. Например, если у вас есть список, разделенный в космос:

lines="2 3 5 7 11 13"
<sourcefile.tsv sed -n "$(echo "$lines" | sed 's/$/p/; s/ /p\n/')"  >extractedrecords.tsv

awk - это другая возможность.

lines="2 3 5 7 11 13"
export lines
<sourcefile.tsv awk '" "ENVIRON["lines"]" " ~ " "NR" "' >extractedrecords.tsv
2
27.01.2020, 21:19

Теги

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