использование sed и perl для обработки текста, копирования строк из одного файла в другой - PullRequest
0 голосов
/ 09 февраля 2012

Я новичок в Linux и имею сложную задачу.

У меня есть 3 файла данных, и мне нужно сделать следующее:

  1. Перейти к строке 31 файла 1,удалите его
  2. Прочитайте 1 строку из файла 2 и добавьте вместо удаленной строки
  3. Перейдите к строке 97 файла 1, удалите ее, а затем прочитайте строку 1 из файла 2 и добавьте вместоЭта удаленная строка в файле 1.

Важно также сохранить один и тот же файл, т.е. файл, его нельзя изменять.

Я пробовал разные версии sedи perl, с уловками копирования в буфер, но не удалось.

Я открыт для всех предложений и прошу экспертов дать мне предложения.

1 Ответ

1 голос
/ 10 февраля 2012

Я не могу найти ссылку на 3-й файл в вашем вопросе, но если вы имеете в виду заменить строку номер 31 файла 1 на 1-ю строку файла 2, и заменить строку номер 97 файла 1 на 2-ю строку файла 2:

sed -i -e '30R f2
31d;96R f2
97d' f1

Новые строки важны после f2, поэтому sed знает, что это конец имени файла.

Обратите внимание, что команда R является расширением GNU, этоне стандарт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...