[英]Linux script help needed
我正在嘗試創建一個腳本,它將使用/ etc / passwd文件來創建這樣的列表:
全名:Blah Blah用戶帳戶:bblah用戶名:5000最后登錄:Sun Feb 21 18:13姓名:Mike Mike位注冊表:mmike用戶名號:5001最后登錄:Sun 2月21日18:13
使用我的腳本,我得到它顯示全名:Blah Blah用戶帳戶:bblah用戶ID:1000因為我在我的passwd文件中grep 1000個帳戶。 只要我執行5000系列,我會獲得所有全名,然后是所有用戶帳戶,然后列出所有用戶ID。 我該如何解決這個問題? 如何添加“上次登錄”位?
有沒有辦法在不使用awk的情況下執行此操作?
到目前為止的腳本是:
#!/bin/bash
passfile=/etc/passwd
for i in $(grep 5000 ${passfile} | cut -d : -f 5)
do
account=$(grep 5000 /etc/passwd | cut -d : -f 3)
username=$(grep 5000 /etc/passwd | cut -d : -f 1)
echo Full Name:${i} Username: ${username} User ID: ${account} Last login: ${lastlogin)
done
上次登錄是由最后一個命令完成的:
last username
用這個:
#!/bin/bash
echo -en "BEGIN{\n}{\n system(var)\n}\n" > h.awk
while read in; \
do \
uname=`echo $in | sed -r 's/:/\ /g' | awk '{print $1}'`; \
p1=`echo $in | sed -r 's/:/\ /g' | awk '{print "name: "$5, "username: "$1, "id: "$3}'`; \
p2=`echo | awk -f ./h.awk var="last $uname| head -n 1"|awk '{print $5 $6}'`; \
echo $p1 last login: $p2; \
done < /etc/passwd
如果您需要提示上次登錄的更多詳細信息,請使用以下內容:
echo -en "BEGIN{\n}{\n system(var)\n}\n" > h.awk
while read in; \
do \
uname=`echo $in | sed -r 's/:/\ /g' | awk '{print $1}'`; \
p1=`echo $in | sed -r 's/:/\ /g' | awk '{print "name: "$5, "username: "$1, "id: "$3}'`; \
p2=`echo | awk -f ./h.awk var="last $uname| head -n 1"|awk '{print $4" "$5 $6" "$7}'`; \
echo $p1 last login: $p2; \
done < /etc/passwd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.