搜索文件中的字符串,然后打印以该字符串开头的行

时间:2013-02-15 12:26:53

标签: linux bash

我有一项任务,我不知道在管理文件,阅读和写作方面。这是我的主要问题:

我有一个管理地址簿的脚本,在菜单完成时,正在使用功能,但我不知道如何搜索或写入文件。

第一个“选项”为用户提供了通过联系人姓名搜索地址簿的选项(duh!)。我想要使​​用的模式是“名称:地址:电子邮件:电话”,让用户将空格放在名称,地址但不是电子邮件或电话,只有最后一个中的数字。我相信我可以通过正则表达式实现这一点,我从Java课程中了解了一些。

我怎么能这样做呢?我知道grep可能有用,但即使阅读了手册页后我也不知道这些参数。逐行解析可以使用for line in $(file)完成,但仍然不确定。

2 个答案:

答案 0 :(得分:0)

这是一种方法:

grep "^something" $file | while read line 
do 
    echo $line;   #do whatever you want with your $line here
done

答案 1 :(得分:0)

如果您被允许使用grep,那么您可能会使用awk,这就是我对您工作的大部分内容的偏好。

按名称查找联系人:

awk -v name="Anton Kovalenko" -F: '$1==name' "$file"