【发布时间】:2018-06-26 11:44:32
【问题描述】:
我是 linux 新手,我决定学习 shell 脚本。我创建了一个包含以下文本的文件 data.txt:
12345 Nick Abrams A 10900
67890 George Kennedy I 20000
(text goes on...)
第一个字段是卡的密码,第二个是客户的姓名,第三个是姓氏,第四个表示卡是否有效(或无效),最后一个字段是客户的余额。我需要编写一个从键盘接收客户密码的脚本,如果该密码写在文本文件中,那么脚本应该在屏幕上打印客户的姓名和姓氏。我用过这样的grep
grep "^$pin" data.txt
但它会返回客户的所有详细信息。我只需要打印第二个和第三个字段并忽略其他所有内容。是否有任何参数可以隔离我需要的单词?
【问题讨论】:
-
我想你可以在这里找到解决方案:stackoverflow.com/questions/19951369/…
-
将
awk用作:awk -v pin="$pin" '$1 == pin { print $2, $3 }' data.txt -
我相信我没有很好地解释我真正想要什么。我的意思是,如果用户输入 12345,脚本应该打印“Nick Abrams”。不必将其保存在变量中,只需将其打印在屏幕上即可。顺便说一句,我更喜欢使用 grep,因为我还没有学到如何使用 awk。