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

标签 linux bash

我有一项作业,但我不知道如何管理文件、读取和写入。这是我的主要问题:

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

第一个“选项”为用户提供了通过联系人姓名搜索地址簿的选项(呃!)。我想要使​​用的模式类似于“姓名:地址:电子邮件:电话”,让用户在姓名、地址中添加空格,但不在电子邮件或电话中添加空格,并且在最后一个中仅添加数字。我相信我可以使用正则表达式来实现这一点,我从 Java 类(class)中了解了一些正则表达式。

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

最佳答案

如果您被允许使用 grep,那么您可能会使用 awk,这也是我在作业的大部分内容中更喜欢的方式。

按姓名查找联系人:

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

关于linux - 在文件中搜索字符串,然后打印以该字符串开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14894736/

相关文章:

c - 将十六进制写入 C 文件(不是 ASCII)

linux - 显示 tcp http 请求端口 80 Linux

linux - 为什么 gcc 在调用 “halt” 之后在程序中放置 “main” 指令?

regex - 查找文本文件中仅包含空格的列,并将其替换为唯一的分隔符

linux - 如何替换一堆文件中的多行字符串

c - 使用 libmysql 进行多线程编程

linux - 使用文件备份重新安装 Linux 软件包

bash - 在 Azure 管道中,linux 命令在脚本文件末尾被截断

linux - ssh 中带有管道变量的 egrep 命令抛出 No Such File or Directory 错误

linux - 从 Bash shell 脚本中打开 Vim