ฉันได้เขียนสคริปต์ที่แสดงชื่อและแผนกของผู้ใช้และใช้งานได้นอกจากนี้ฉันพยายามวาดเส้นแบ่งที่มีการตั้งชื่อให้กับคอลัมน์ตามที่พวกเขาต้องการ ฉันพยายามทำกับ printf แต่อย่างใดไม่สามารถรับได้ ณ ตอนนี้ .. ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ..
ด้านล่างนี้เป็นสคริปต์และผลลัพธ์ที่คาดหวัง ..
#!/bin/sh
for names in `cat namefile`;
do
DATA1="`/grid/common/bin/cod -u $names | awk -F: '/Department/ {print $2}'`"
DATA2="`/grid/common/bin/cod -u $names | awk -F: '/Name/ {print $2}'`"
#printf '%*s\n' "${COLUMN'S:-$(tput cols)}" '' | tr ' ' -
printf "%-50s : %10s\n" "$DATA2" "$DATA1"
done
bash-4.1$ sh Userdetail.sh
Karn Kumar : TT, Infra, VM & India
Manas . : TT, Infra, VM & India
Pranjal Agrawal : TT, Infra, VM & India
Rogen Mana : PP OPS-Brazil
ฉันกำลังพยายามหาวิธีวาดเส้นกับชื่อก่อนที่ผลลัพธ์จะแสดงตามที่คาดไว้ด้านล่าง:
Name Department
--------------------------------------------------
Karn Kumar : TT, Infra, VM & India
Manas . : TT, Infra, VM & India
Pranjal Agrawal : TT, Infra, VM & India
Rogen Mana : PP OPS-Brazil
สำหรับวิธีการเพิ่มเติมในส่วนคำสั่ง ..
bash-4.1$ /grid/common/bin/cod -u karn
Name: Karn Kumar
Title: IT -Staff Systems Engineer
Department: TT, Infra, VM & India
Mgr: KK LIN
Mgr Login: ttlin
E-Mail: karn@abc.com
Phone: 09999999999
Internal #:
Ext: 4848
Cell: 8777880559
Fax: -
Building: NOIDA 03
Floor: 03
Room: 3.3.109
$( command )
แทน มันทำให้อ่านง่ายขึ้นและหลีกเลี่ยงปัญหาบางอย่างfor variable in $(cat file.txt)
นอกจากนี้ยังไม่ได้ใช้ มีวิธีอื่นที่ดีกว่าในการอ่านไฟล์ทีละบรรทัด ดูmywiki.wooledge.org/BashFAQ/001