gpt4 book ai didi

linux - 在 if 语句中使用 grep

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:36 25 4
gpt4 key购买 nike

我的目标是编写一个 shell 脚本,获取我已经从文件中过滤掉的用户,并检查这些用户是否具有特定字符串,如果有,则将他们标记为主要用户,如果没有,则标记为非主要用户。我的麻烦来 self 的第一个 if 语句,我不确定 grep 是否是进入 if 语句的正确方法。这是我所拥有的:

(
while read i
do


username=`echo $i | grep -v 'CMPSC 1513' | grep -P -v '(?!.*CPSMA 2923)CPSMA' | cut -d'|' -f2`
fullname=`echo $i | grep -v 'CMPSC 1513' | grep -P -v '(?!.*CPSMA 2923)CPSMA' | cut -d'|' -f3`
id=`echo $i | grep -v 'CMPSC 1513' | grep -P -v '(?!.*CPSMA 2923)CPSMA' | cut -d'|' -f4`

if [ $username ]
then

if grep -q "|0510"
then
echo $username":(password):(UID):(GID):"$fullname"+"$id":/home/STUDENTS/majors:/bin/bash"
else
echo $username":(password):(UID):(GID):"$fullname"+"$id":/home/STUDENTS/nonmajors:/bin/bash"
fi
fi

done
)<./cs_roster.txt

只是一些信息,它包含在一个 while 循环中。在 while 循环中,我确定列出的人应该是主要还是非主要,并且我的 if [ $username ] 已经过测试并且确实返回了所有正确的用户。此时 while 循环只运行一次然后停止。

最佳答案

只需删除方括号并将$i 传递给grep:

if echo $i | grep -q "|0510"

在您的代码示例中,grep 没有任何工作要做。

关于linux - 在 if 语句中使用 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52781240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com