Я - новичок
Я хотел бы извлечь данные, с которых начинается файл, "ЗАПУСКАЮТ TEC MAP" и концы с "КОНЦОМ TEC MAP", из файла. Как я могу получить этот определенный интервал? Какие команды я должен использовать?
Откройте терминал и тип:
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
или путь к файлу или просто его имя, если Ваш текущий каталог совпадает с каталогом, который содержит файл.