Ubuntu терминал копирует номер строки N из одного файла в другой


Я хотел бы знать, возможно ли скопировать строки с номерами 7,8,9 и 17,18 одного текстового файла в другой?

Большое спасибо заранее !!!

1
задан 6 October 2013 в 20:56

3 ответа

Вы можете использовать sed (редактор потоков) для выборочной печати строк по номеру, например

sed -n '7,9p;17,18p' oldfile > newfile
0
ответ дан 6 October 2013 в 20:56

Вы не должны полагаться на порядок строк на файле, потому что он мог бы измениться (если это - системный файл, временный файл ECC. и это обновляется).
Можно использовать grep или один из его вариантов, например, rgrep:

rgrep WordOrRegularExpressionToMatch "Name_of_the_file"

Затем после того, как Вы видите, что принтер строк является правильным, можно использовать:

rgrep WordOrRegularExpressionToMatch "Name_of_the_file" >> "Name_of_the_second_file"

Это добавит строки, распечатанные rgrep во второй файл; перезаписывать использование">" и не">>".
Если Вы действительно хотите извлечь точный набор строк, можно использовать "sed":

sed -n -e 7,9p -e 17,18p "Name_of_the_file"

(это 2 отдельных интервала),

Так...

sed -n -e 7,9p -e 17,18p "Name_of_the_file" > "Another_file_to_overwrite"

(>> для добавления> Копия и вставляют строку: это сделает задание.:-)
"человек sed" даст Вам больше справки.
Хорошего дня!

0
ответ дан 6 October 2013 в 20:56

Если вы знаете, сколько строк в вашем исходном файле (wc -l), вы можете сделать это ... предположим, что 12000 строк и вам нужно 2000 - 7000 строк в вашем новом файле (всего 5000 строк).

cat myfile | tail -10000 | head -5000 > newfile

Прочитайте последние 10k строк, затем прочитайте первые 5k строк из этого.

0
ответ дан 6 October 2013 в 20:56

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

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