Если ваш вопрос конкретно как обработать текстовый файл и архивированный текстовый файл одной командой, см. другой вопрос. Но если ваш вопрос, в общем, как извлечь текст из разных типов файлов, используя разные инструменты, а затем обработать их таким же образом,
for file in mylog_1.log mylog_2.log.gz …
do
if [[ "$file" == *.gz ]]
then
zcat "$file"
else
cat "$file"
fi | grep text | sort | uniq -c
done
Это будет обрабатывать каждый файл отдельно. Чтобы объединить (объединить )их и обработать совокупный текст как единое целое, просто переместите трубу:
for file in mylog_1.log mylog_2.log.gz …
do
if [[ "$file" == *.gz ]]
then
zcat "$file"
else
cat "$file"
fi
done | grep text | sort | uniq -c
А еще лучше попробуйте использовать что-то вроде этого:
- name: Ripgrep Repo
get_url:
url: https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
dest: /etc/yum.repos.d/copr_ripgrep.repo
Это, вероятно, самый "Ansible" способ решить проблему, если вы не хотите устанавливать yum-config-manager
.
На самом деле вам не нужно yum-config-manager
для выполнения этой задачи. Все, что делает команда в этом контексте, — это помещает этот удаленный файл в /etc/yum.repos.d/
. После этого yum
сможет извлекать пакеты из этого репозитория. Что-то вроде
sudo wget -O /etc/yum.repos.d/copr_ripgrep.repo https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
... должно сработать. curl
также будет работать, если wget
недоступен.
Кроме того, вы можете сначала установить yum-config-manager
, а затем использовать его, как вы упомянули.
Я не уверен, что вы можете добавить.repo по URL-адресу, поэтому я открыл его и преобразовал в директивы, необходимые для yum-repository
.
name: Add repository for ripgrep for epel7
yum_repository:
name: cgor
description: EPEL YUM repo
baseurl: https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
name: copr
description: Copr repo for ripgrep owned by carlwgeorge
baseurl: https://copr-be.cloud.fedoraproject.org/results/carlwgeorge/ripgrep/epel-7-$basearch/
gpgkey: https://copr-be.cloud.fedoraproject.org/results/carlwgeorge/ripgrep/pubkey.gpg
gpgcheck: yes
repo_gpgcheck: no
enabled: yes
skip_if_unavailable: true
Я оставлю это -непринятым, потому что я не думаю, что это идеально.