我有下面的文件,其中的名称(单个单词)将移至以U1存储的其他文件中并删除该行。在同一文件中,必须从存储为M1的行中选择名称。文件1:
Alter user Scott account lock;
Tim
Alter user David account lock;
Tim
Alter user Jennifer account lock;
Samantha
Alter user Ethan account lock;
Richard
文件1的出席人数:(移至file2后,删除单个单词)
Alter user Scott account lock;
Alter user David account lock;
Alter user Jennifer account lock;
Alter user Ethan account lock;
文件2 :(存储为M1的所有名称供以后使用)
Tim
Tim
Samantha
Richard
我可以在文件1上执行awk'{print $ 3}'以获取名称并将其存储为U1,以便以后使用。就这样,文件3
Scott
David
Jennifer
Ethan
我将使用M1和U1中的上述名称在mailx中使用它们,以将邮件发送给用户(u1)及其管理员(M1)。
mailx -s "User account U1 expired" "M1@xyz.com U1@.xyz.com"
适合所有用户
从输出文件和创建的文件3中分离出名称。
如上所述
我的挑战:
答案 0 :(得分:0)
以下代码将您的File1作为其参数,然后创建File2.txt并发送邮件。由于已发送邮件,因此未创建其他文件。
#!/bin/ksh
FileToProcess=$1
while read line; do
((i++))
Arr[$i].FullLine="$line"
Arr[$i].LineParts=( $line )
done < $FileToProcess
for j in ${!Arr[@]}; do
if [[ ${#Arr[$j].LineParts[@]} -gt 1 ]]; then
print ${Arr[$j].FullLine} >> ./File2.txt
mailx -s "User Account ${Arr[$j].LineParts[2]} expired" "${Arr[$((j+1))].FullLine}@xyz.com ${Arr[$j].LineParts[2]}@xyz.com"
fi
done
希望有帮助
安德烈·格林纳斯