получите определенные строки от File1, других от File2 и распечатайте их в File3

Я пытаюсь получить определенные строки от File1 и других от File2 и распечатать их в File3 (в последовательном порядке).

Скажем, я нуждаюсь в строках 1 и 3 от File1 и Строк 6 и 8 из Файла 2, затем печатаю их в File3.

Я придумал эту форму:

grep -H 'x*' File1.txt File2.txt | sed '/File1.txt:[13]/d;/File2.txt:[68]/d;s/[^:]*://' > File3.txt

Это удаляет 'нежелательные' строки, и распечатайте их в третьем файле, который работает хорошо на немного строк, но с большим количеством строк он перепутывает их странным способом в выходном файле. В этой строке в качестве примера 1 и 3: [13]), но у меня будут сотни или больше строк, таким образом, я не буду знать, как разделить различные строки в скобках (я знаю, что промежуточная 'запятая' не работает).

Я включал File1 и File2 (для давания общее представление о моих файлах). Например, мне были бы нужны строки 19 - 40 от File1 и строк 9 - 18 от File2, распечатанного в File3 (тот же порядок). Есть ли какой-либо другой способ сделать это, что можно предложить?

Я ценил бы его.

Steph

1
задан 13 March 2019 в 07:04

1 ответ

Быстрый ответ (другие могут не стесняться редактировать для добавления деталей):

(sed -n 19,40p File1; sed -n 9,18p File2) > File3

-n говорит sed к не автоматически печатают все входные строки, затем X,Yp говорит этому печатать строки X к Y, включительно. (command1; command2) создайте "соединения" обе команды в одну в целях перенаправления вывода.

2
ответ дан 7 December 2019 в 13:18

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

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