我有一个passwd文件,其中包含35000个用户,我只需要增加205个用户。我的脚本正在运行,并提供了详细信息。但是,它只给了我190个用户。我假设其他所有左用户在文件中都没有任何条目。 如果用户存在,我要使用if循环来放入找到的文件,如果不存在,则要使用if循环?
#!/bin/bash
##/tmp/users.txt is file in which you initialize unix ids
cat /tmp/users.txt | while read line
do
grep -w $line /var/yp/test/passwd | cut -d: -f1,2,3,5 >> /tmp/result.csv
##/tmp/result.csv will store the result
done;
答案 0 :(得分:0)
更改
grep -w $line /var/yp/test/passwd | cut -d: -f1,2,3,5 >> /tmp/result.csv
到
if grep -q -w $line /var/yp/test/passwd ; then
grep -w $line /var/yp/test/passwd | cut -d: -f1,2,3,5 >> /tmp/result.csv
else
echo $line | cut -d: -f1,2,3,5 >> /tmp/not-found.csv
echo ERROR: Not found: $line
fi
-q
使第一个grep不输出任何内容,它只是检查是否找到任何东西,然后if
语句使用结果执行常规命令或报告错误。
“未找到”条目将在/tmp/not-found.csv
中。
答案 1 :(得分:0)
您是否正在寻找类似的东西?
#!/bin/bash
cat /tmp/users.txt | while read line; do
if grep -q -w $line /var/yp/test/passwd; then
echo user $line found
grep -w $line /var/yp/test/passwd | cut -d: -f1,2,3,5 >> /tmp/result.csv
else
echo user $line not found
fi
done
##/tmp/result.csv will store the result