[英]How to split lines from a grep on a file?
給定 Employee.txt,
PD:198801221:Jason:Jason@gmail.com
PU:19941029:Tan:tan@gmail.com
PS:19960601:May:may@gmail.com
和一個表格,
echo -n "Enter BirthDate:";read bdate
grep "$bdate" Employee.txt
echo "Employee name (auto display):"
echo "Employee email (auto display):"
它獲取員工的出生日期並根據輸入文件顯示姓名和電子郵件。
例如,如果我在 BirthDate 中輸入19941029
,我從文件中得到的結果是PU:19941029:Tan:tan@gmail.com
上面的腳本顯示了整行。
如何將行分成自動顯示名稱和電子郵件字段?
您可以使用 IFS 將輸入讀入 4 個變量
echo -n "Enter BirthDate:";read bdate
match=$(grep "$bdate" Employee.txt)
IFS=':' read -r first second third fourth <<<$match
echo "Employee name (auto display):" $third
echo "Employee email (auto display):" $fourth
參考
https://bash.cyberciti.biz/guide/$IFS
https://unix.stackexchange.com/questions/209123/understanding-ifs-read-r-line
您可以通過cut管道輸出 grep 並選擇所需的字段。
#!/usr/bin/env bash
set -eu
echo -n "Enter BirthDate: "
read -r bdate
found=$(grep "$bdate" Employee.txt)
name=$(echo "$found" | cut -d: -f 3)
email=$(echo "$found" | cut -d: -f 4)
echo "Employee name (auto display): $name"
echo "Employee email (auto display): $email"
如果您的字段包含分隔符(在這種情況下為冒號),則這相當簡單並且會中斷。 在這種情況下,您應該獲得一個 CSV 閱讀器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.