Использование sed и perl для обработки текста, копирования строк из одного файла в другой
Я новичок в Linux и имею сложную задачу.
У меня есть 3 файла данных, и мне нужно сделать следующее:
- Перейти к строке 31 файла 1, удалить его
- Прочитать 1 строку из файла 2 и добавить вместо удаленной строки
- Перейдите к строке 97 файла 1, удалите ее, а затем прочитайте строку 1 из файла 2 и добавьте вместо этой удаленной строки в файл 1.
Также важно сохранить один и тот же файл, т.е. файл, он не подлежит изменению.
Я пробовал разные версии sed
а также perl
, с приемами копирования в буфер, но не удалось.
Я открыт для всех предложений и прошу экспертов дать мне предложения.
1 ответ
Решение
Я не могу найти ссылку на 3-й файл в вашем вопросе, но если вы имеете в виду заменить строку номер 31 файла 1 на 1-ю строку файла 2, и заменить строку номер 97 файла 1 на 2-ю строку файла 2:
sed -i -e '30R f2
31d;96R f2
97d' f1
Новые строки важны после f2, поэтому sed знает, что это конец имени файла.
Обратите внимание, что R
Команда является расширением GNU, она не является стандартной.