shell脚本中的简单for循环

发布于 2025-01-01 06:48:47 字数 439 浏览 1 评论 0原文

我有一个包含不同模块的 cvs 存储库。设置始终相同:

/data/cvs/<repo>/CVSROOT/passwd

我需要一个简短的脚本来循环所有存储库并执行此命令:

grep "^iq" <repo>/CVSROOT/passwd | sort | uniq

目的是拥有以前缀“iq”开头的所有用户名。 输出将是一个包含用户名、密码哈希和 cvs 模块的列表:

iqabcde:5!h8kdh2937slj:cvsabc

应使用“:”作为终止符来分割此输出。我需要有 3 个可以访问的变量。

说实话,我对 shell 脚本了解不多。如果有人可以提供帮助,那就太好了,因为我认为这是可以解决的。

多谢

I have a cvs repository with different modules. The setup is always the same:

/data/cvs/<repo>/CVSROOT/passwd

I need to have a short script that loops over all repositories and performs this command:

grep "^iq" <repo>/CVSROOT/passwd | sort | uniq

The purpose is to have all usernames that start with the prefix "iq".
The output will be a list with usernames, passwordhashes and the cvsmodule:

iqabcde:5!h8kdh2937slj:cvsabc

This output should be split by using ":" as terminator. I need to have 3 variables that I can access.

To be honest I don't have a lot of knowledge in shell scripting. Would be great if anyone could help, because I think this is solvable.

Thanks a lot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

压抑⊿情绪 2025-01-08 06:48:47

我很无聊。

#!/bin/bash
for repo in /data/cvs/*
do
  IFS=: read username hash module < <(grep "^iq" "$repo"/CVSROOT/passwd | sort | uniq)
  echo "Name: $username, Hash: $hash, Module: $module"
done

I'm bored.

#!/bin/bash
for repo in /data/cvs/*
do
  IFS=: read username hash module < <(grep "^iq" "$repo"/CVSROOT/passwd | sort | uniq)
  echo "Name: $username, Hash: $hash, Module: $module"
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文