Создание отдельных файлов из вывода awk - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь использовать сценарий для создания нескольких файлов в каталоге, но пытаюсь создать отдельные файлы для вывода из awk.

Команда awk выглядит следующим образом:

$ awk '{ if ($3>=20 && $3<==30 && $5=="Sequenced") print $6 }' ./foo.txt

Это приводит к примеру: / животных. Я был бы признателен за любую помощь, которую я могу получить с этим.

Ответы [ 2 ]

1 голос
/ 03 мая 2020

У вас есть один дополнительный = в $3<==30. Исправлено ниже.

awk '$3>=20 && $3<=30 && $5=="Sequenced"{ #No need for if here
    file="./animals/"$6".txt"             #Build the file name
    printf "">file                        #Creates the empty file
    close(file)}' ./foo.txt               #Close the stream

Однострочник:

awk '$3>=20&&$3<=30&&$5=="Sequenced"{f="./animals/"$6".txt";printf "">f;close(f)}' ./foo.txt
1 голос
/ 03 мая 2020
$ awk '{ if ($3>=20 && $3<==30 && $5=="Sequenced") print $6".txt" }' ./foo.txt|xargs touch

с помощью xargs вы можете передать свой вывод в список аргументов другой команде, например, touch. Он создаст пустые файлы (или обновит время модификации, если файл существует)

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