как извлекать части файла в отдельные файлы в linux с помощью команд awk или grep или sed

У меня есть текстовый файл, как показано ниже:

Вход file1.txt

....................... cha21 1 3 5 nar cha21 2 3 6 piy cha23 2 3 5 ram cha23 3 3 3 dam cha27 5 3 7 pam ................................ 

И я хотел бы выделить все 5 столбцов, соответствующих строкам «cha21», «cha23» и «cha27», в 3 разных выходных файла (например, cha21.txt, cha23.txt, cha27.txt).

выходные файлы

cha21.txt

 .......... cha21 1 3 5 nar cha21 2 3 6 piy ...................... 

cha23.txt

 cha23 2 3 5 ram cha23 3 3 3 dam ................................... 

cha27.txt

 cha27 5 3 7 pam ........................... 

Я могу сделать это, используя команду grep 3 раза для 3-х файлов … В любом случае я могу сделать это все сразу, т.е. одну команду, потому что мне нужно извлечь 100 выходных файлов.

  • Использование grep для поиска файла
  • grep для повторных значений из списка шаблонов
  • Ошибка grep: операнд оператора повторения недействителен
  • Чтобы удалить лишнее пространство из строки с помощью команды оболочки
  • Печать строки между двумя круглыми скобками
  • awk - grep несколько строк и печать определенным образом
  • Grep из многих ключевых слов по многим файлам: ускорение
  • Получите только размер смонтированной файловой системы
  • 2 Solutions collect form web for “как извлекать части файла в отдельные файлы в linux с помощью команд awk или grep или sed”

    я бы попробовал

     awk '{print >> $1 ".txt" ;}' 

    где

    • print всю строку.
    • >> $1 ."txt" напишите (добавьте) эту строку в файл, обозначенный $ 1, с добавленным .txt .

    редактировать:

    если у вас есть строки комментариев, строки с точками и т. д.

    пытаться

     awk '$1 ~ /cha/ {print >> $1 ".txt" ;}' 

    который будет заполнять только файл, начинающийся с cha.

    Это легко с awk :

     awk '{print $0 >> $1".txt"}' file1.txt 
    Interesting Posts

    Уведомление, когда кто-то обращается к моему Samba / CIFS

    Скопируйте веб-сайт из RedHat в CentOS

    Ограничить максимальное количество одновременных процессов scp, запущенных на хосте

    Как проверить возможные конфликты при использовании псевдонимов в bashrc?

    ОШИБКА: модуль ndiswrapper не найден

    Построить матрицу на основе значений другой матрицы

    Почему я не могу создать «hardlink» для файла из каталога «mount -bind» в той же файловой системе?

    Не удается войти в Fedora 19 после принудительного отключения

    Есть ли команда для перечисления файлов, исключение подкаталогов и отображение размера и даты?

    Как я могу передать вывод на другой процесс, но сохранить состояние ошибки первого процесса?

    Проверка и установка файлов в yum

    Сделать netcat «потоком»

    Как автоматически назначить сетевые настройки для собственного интерфейса dhcp-сервера с помощью dnsmasq?

    Можно ли отключить все графические адаптеры linux при загрузке?

    shellinabox на arch linux

    Linux и Unix - лучшая ОС в мире.