MST

星途 面试题库

面试题:Bash中xargs命令在复杂文本处理场景的应用

有一个文本文件 `data.txt`,内容格式为每行是一个人的信息,格式为 `姓名:年龄:城市`。现在需要将所有年龄大于30岁的人的姓名提取出来,并使用xargs将这些姓名传递给一个自定义的 `send_email.sh` 脚本(假设此脚本接收姓名作为参数,向此人发送邮件),请编写实现此功能的Bash命令及相关逻辑。
41.9万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
grep -E ':[3-9][0-9]:' data.txt | cut -d ':' -f 1 | xargs -I {}./send_email.sh {}

解释:

  1. grep -E ':[3-9][0-9]:' data.txt:使用 grep 命令,通过扩展正则表达式匹配出年龄大于30岁的行,其中 :[3-9][0-9]: 匹配 : 包围的大于30的两位数。
  2. cut -d ':' -f 1:使用 cut 命令,以 : 为分隔符,提取每行的第一个字段,即姓名。
  3. xargs -I {}./send_email.sh {}:使用 xargs 命令,将前面命令输出的姓名作为参数传递给 send_email.sh 脚本,-I {} 表示将 {} 替换为前面命令输出的内容。