Я пытаюсь получить определенные строки от 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
Быстрый ответ (другие могут не стесняться редактировать для добавления деталей):
(sed -n 19,40p File1; sed -n 9,18p File2) > File3
-n
говорит sed
к не автоматически печатают все входные строки, затем X,Yp
говорит этому печатать строки X к Y, включительно. (command1; command2)
создайте "соединения" обе команды в одну в целях перенаправления вывода.