Как я могу извлечь данные из файла UNIX?

Я - новичок

Я хотел бы извлечь данные, с которых начинается файл, "ЗАПУСКАЮТ TEC MAP" и концы с "КОНЦОМ TEC MAP", из файла. Как я могу получить этот определенный интервал? Какие команды я должен использовать?

Файл: codg0010.17i. Z

1
задан 20 May 2018 в 19:16

1 ответ

Откройте терминал и тип:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' 

Для вывода результатов к выходному файлу, вместо этого введите:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' >> output.txt

-i опция sed используется для редактирования файлов на месте. Извлечь файл из архива и отредактировать его на месте вместо того, чтобы писать вывод в output.txt:

uncompress codg0010.17i.Z # This archive has only 1 file in it named codg0010.17i. 
sed -ni '/START OF TEC MAP/,/END OF TEC MAP/p' codg0010.17i

Это печатает весь текст между ЗАПУСКОМ TEC MAP и КОНЦОМ TEC MAP, однако этот файл содержит не данные всего одного TEC, MAP, но данные 25 различных КАРТ TEC, расположенных последовательно и вышеупомянутая команда, печатает данные всех 25 карт вместе.

Объяснение

sed часть команды имеет следующую форму:

sed -n '/WORD1/,/WORD2/p' /path/to/file
  • WORD1 начинающаяся строка (ЗАПУСТИТЕ КАРТЫ TEC),
  • WORD2 строка конца (КОНЕЦ КАРТЫ TEC)
  • p команда sed должна распечатать определенные строки, в этом случае все строки включая и между ЗАПУСКОМ TEC MAP и КОНЦОМ TEC MAP
  • /path/to/file или путь к файлу или просто его имя, если Ваш текущий каталог совпадает с каталогом, который содержит файл.
5
ответ дан 3 December 2019 в 06:37

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

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