首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我有一个包含名字的txt文件,我想提取名字和姓氏。我已经创建了bash脚本,但它给了我一个错误

首先,你可以使用bash脚本来提取txt文件中的名字和姓氏。以下是一个示例脚本:

代码语言:txt
复制
#!/bin/bash

# 读取txt文件内容
file="names.txt"
content=$(cat $file)

# 使用正则表达式提取名字和姓氏
names=$(echo $content | grep -oE '[A-Z][a-z]+ [A-Z][a-z]+')

# 打印提取的名字和姓氏
echo "提取的名字和姓氏:"
echo $names

这个脚本假设你的txt文件名为"names.txt",并且名字和姓氏的格式为首字母大写的单词,名字和姓氏之间用空格分隔。

你可以将上述脚本保存为一个名为"extract_names.sh"的文件,并在终端中运行以下命令来执行脚本:

代码语言:txt
复制
bash extract_names.sh

脚本将会读取"names.txt"文件中的内容,并提取出名字和姓氏,然后打印在终端中。

关于你提到的错误,如果你能提供具体的错误信息,我可以帮助你解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

别把“复杂化”视为高大上,优秀数据科学家不会创造复杂模型

假设提取 Medium 博客文本来构建自己 NLP 分类器。首先构建一个标签系统,确定哪些博文是政治、体育相关、商业相关、娱乐相关等等。...确定正确数据需要分析他们哪些数据,并提取其中有用部分。但如果我们提高预测速度呢?我们不应该有一个复杂机器学习模型来实现这样目标吗?也许吧。...微软 AI 已经建了一个惊人梯度提升模型,称为 Light-GBM。对它做了测试,并与 XGBoost 做了对比,后者是最快 skikit-learn 分类器之一。...对于那些不熟悉的人来说,PHI 范围包括病人名字姓氏、SSN、地址、出生日期等。这些信息理论上不会成为模型特征一部分,而且我们已经删除了所有的痕迹。...在生产中,一个模型总是会对新、未见过数据进行预测,而且很可能在不同名字上犯同样错误。在将数据部署到生产环境中时,分析数据清理数据太重要了。

38410

编写快速安全Bash脚本建议

print 昨天一些朋友聊起Bash意识到:即使已经使用Bash十多年了,现在还有一些基础杂项,理解并不是很清晰。 像往常一样,认为应该写一个博文。...我们会包含: 一些bash基础知识(“你怎么写一个for循环”) 杂项事宜(“总是引用你bash变量”) bash脚本安全提示(“总是使用set -u”) 如果你编写shell脚本,并且你没有阅读这篇文章中其他任何内容...需要注意是不要在=运算符两边放置空格符,比如VARIABLE= 2、VARIABLE = 2、或者VARIABLE =2,这并不是语法错误,但是将会做完全不需要事情(比如试图运行一个名字为2程序...全局变量,局部变量环境变量 Bash3种变量。一般先想到(可能也是最常用)是 环境变量 。...个很酷事情是你可以遍历另一个命令输出。seq 1 10 将数字从1到10(每行一个)打印,这个for循环只是提取该输出并遍历它。就经常用这种方法。

1.8K80

学会这些 shell 小技巧,就爱上 Linux 了

*会替换成上一次命令输入所有文件路径,直接看例子: # 创建了三个脚本文件 $ file script1.sh script2.sh script3.sh # 给它们全部加上可执行权限 $ chmod...git 但是这个方法有缺点:首先,该功能似乎只有 bash 支持, zsh 作为 shell 终端,就用不了;第二,只能查找出一个(最近)命令,如果想找以前某个命令,就没办法了。...举个实际例子,比如我 Github 仓库 fucking-algorithm ,需要给其中所有 markdown 文件最下方添加上一篇、下一篇、目录三个页脚链接,有的文章已经了页脚,大部分都没有...这个功能可能在平时使用时也不怎么用,但是在写 shell 脚本时也非常有用,比如说你要在/tmp创建临时文件,给文件名字一直都是非常让人费脑子,这时候可以使用$$变量扩展出当前进程 PID 作为临时文件名...,PID 在计算机中都是唯一,所以绝不会重复,也不需要你记住临时文件名字

46130

写代码不如chatGPT

然后就随手问了chatGPT如何写代码,很随意提问:需要在Linux里面批量修改文件名字一个txt文件里面有两列,第一列存储文件名字需要使用shell命令修改为第二列?...chatGPT给我回答超级好: ---- 在Linux中,你可以使用bash shell脚本来批量修改文件名。...你可以使用以下bash脚本来批量修改文件名: while read -r oldname newname do mv "$oldname" "$newname" done < names.txt...这个脚本工作原理是这样:read -r oldname newname会从names.txt文件中读取每一行,并将每一行内容分割成两部分,分别赋值给变量oldnamenewname。...然后,mv " 注意:在运行这个脚本之前,你需要确保你有权限修改这些文件,并且这些文件确实存在。为了避免错误,你可以先在一个包含一些测试文件目录中试运行这个脚本,看看结果是否符合你预期。

16420

Git中命令操作

Git Bash一个纯文本命令行界面,用于在Windows上使用Git,并提供了运行自动化脚本功能。...git init创建一个Git存储库或重新初始化一个现有的存储库。它创建了一个带有子目录模板文件.git目录。在现有存储库中运行git init不会覆盖已经存在内容,它会选择新添加模板。...现在存储库已初始化,现在让在目录/存储库中创建一些文件。例如,建了两个文本文件,即edureka1.txtedureka2.txt。...为此,请使用以下命令: git add 或者是 git add 让为您演示git add命令,以便您可以更好地理解它。 还创建了两个文件edureka3.txtedureka4.txt。...现在,如果要一次性提交工作目录中所有更改快照,可以使用以下命令: git commit -a 在工作目录中又创建了两个文本文件 edureka5.txtedureka6.txt但它们尚未添加到索引中

1.8K10

Ansible 搭建与配置(Ⅰ)

下面两个ip为组内机器ip(要是只写主机名,必须要在/etc/hosts下面增加IP+主机名) 如上在真实运维工作中,其实是分为很多个组devgroup,testgroup,webgroup...shell(远程执行脚本模块)也是蛮喜欢直接支持 管道符 (但是 -m command 是不可以!)...如果拷贝文件,dest指定名字源如果不同,并且它不是已经存在目录,相当于拷贝过去后又重命名。但相反,如果dest是目标机器上已经存在目录,则会直接把文件拷贝到该目录下面。...ansible testhost -m copy -a "src=/etc/passwd dest=/tmp/pa.txt" 这里/tmp/pa.txt源机器上/etc/passwd是一致,如果目标主机已经了...强调三遍意思是吃过亏:) 脚本路径+脚本名+脚本内容: /usr/local/sbin/time.sh #!

1.2K41

使用Yolov5进行端到端目标检测

下面正在下载板球足球数据来创建我们自定义数据集。也就是说,我们将创建一个包含足球板球数据集,而学习任务就是检测这些球。...以Yolo格式导出实际上为我们每个图像创建了一个.txt文件,其中包含图像class_id、x_center、y_center、宽度高度。...数据集目前将是一个单独文件夹,如下所示,包含图像注释: dataset - 0027773a6d54b960.jpg - 0027773a6d54b960.txt...它应该有两个目录映像标签。 ? 我们现在必须添加两个配置文件到训练文件夹: 数据集。我们创建一个文件“dataset”。包含训练验证图像路径以及类。....jpgtest_batch0_gt.jpg来检查训练是否已经设置好,前者包含第一批训练标签,后者包含测试图像ground truth。

1.6K30

Git Bash⭐二、与仓库建立连接、提交与下拉项目

仓库意义 首先我们来确定几个定义: 仓库: 是一个保管我们项目的服务器,类似一台主机。但它不仅是一个存储位置,还是一个程序,我们可以对它进行一些设置。 我们会将项目提交到仓库去,供别人下载。...你可以再输一遍,这时候他会提示你刚才已经设置过了。 或者这样: git remote -v 结果显示已经添加了叫origin仓库。一个push(推送),一个fetch(拉取)。...在本地仓库新建一个文件叫readme.md,现在将它添加到缓存区。...远程仓库分支 强制推送上传: 如果你某次推送失败,git bash报错,你懒得处理错误,你就可以用这个。...git clone 加上你刚才地址 克隆方法2 在一个文件夹进行如下操作: git init git remote add origin +(git地址) git fetch origin +克隆分支名

13310

hanlp自然语言处理包的人名识别代码解析

过滤后,nr.txt中具有姓氏角色单字共计97个。...错误识别的人名,100个常用姓氏不多,很多恐怕是HanLP里其他词表干预进来。 隐马一般用于分词词性标注是比较好,为什么通常序列标注方法也就是BIEO方法直接用到实体识别不合适呢。...因此,我们通过引入角色标记,实际上这就引入了先验知识,比如某些字只能由姓氏标记产生,某些字一般情况都充当名字首字,某些字一般情况都充当名字末字,通过给这些不同情况下字集按照其出现位置分布其语法意义做角色定义...在做人名识别时还有一个注意点,如果你预测语料训练语料完全在文体上差别很大,或者说你就是在公开训练语料上训练而不在预测语料上训练的话,基本上上下文信息是没有用处,甚至可能上下文信息会给实体边界标注带来干扰...,任何机器学习包括深度学习,不管是文本分类领域还是实体识别领域都会有这种泛化能力问题,这种问题恐怕通过算法是没法解决,如果可以解决那么任何语种任何领域都可以使用一种模型,一劳永逸了。

90830

Linux中几个你不常用,但却很有用命令

这些命令可能你没怎么用过,但记住他们,需要时候可以帮大忙! pgrep pgrep名字前有个p,我们可以猜到这进程相关,又是grep,当然这是进程相关grep命令。...下面是一个我们利用bc命令写一个脚本文件名:sqrt) #!.../sqrt.sh 123.00sqrt(123.00)11.09quit split 如果你一个很大文件,你想把其分割成一些小文件,那么这个命令就是干这件事了 > split...> lsof rumenz.txt 显示开启文件rumenz.txt进程> lsof -c nginx 显示出以字母nginx开头进程现在打开文件> lsof -p 1234 列出进程号为1234进程所打开文件...另外,如果你最近跳槽的话,年前花了2周时间收集了一波大厂面经,节后准备跳槽可以点击这里领取!

18410

从邮件地址中提取姓名,超级公式,有这么复杂么?

标签:Excel公式练习 这是一个有趣题目,假设电子邮件地址格式如下: 名字任何非字母.字符姓氏@email.com 说明: 1.假设姓名中只有英文字母。...2.电子邮件地址只包含名字_分隔符_姓氏,没有中间名或其他前缀或后缀等。 3.电子邮件地址在单元格A1中。...4.假设单元格B1只包含电子邮件姓名部分(即如果A1包含john_doe@email.com,则B1中为john_doe)。 5.在单元格C1D1中,是需要提取名字姓氏。...看到这个示例后,第一反应就是利用ASCII字符代码,因为小写字母字符代码在97与122之间,因此,可以获取“@”前字符,看其是否在97与122之间,从而提取出相应字符串。...利用提取名字,去掉前面的名字部分,然后按相同思路,提取姓氏

2K30

情人节表白专用代码

类与对象关系就如模具铸件关系,类实力化结果就是对象,而对对象抽象就是类,类描述了一组相同特性(属性)相同行为对象。..." msgbox"已经深刻认识到自己错误了" msgbox"但请相信我,并不是有意" msgbox"能原谅我吗?...end Select loop msgbox"谢谢亲爱你原谅,mua~" ---- vbs脚本使用教程 在桌面上创建一个文本文档 后缀名为.txt 打开文本文件,拷贝代码。...曾经所有的条件 似乎都成了等你借口 对你感情已经决堤 所以 请允许,从今往后映入你 明媚 和你 耳鬓厮磨,相濡以沫!...春风十里不如你 直到死之前,每天爱你多一点 没有你,就没办法对世界说”你好” 如果你觉一个有趣的人,那是最好不过了 清醒点,别做梦了 写在后面   优秀炫酷表白程序好多,最火大多是用

1.7K30

Shell利剑之export、readhistory

文件描述符0理解为计算机交互时输入,而这个输入默认是指向键盘; 文件描述符1理解为计算机交互时输出,而这个输出默认是指向显示器文件描述符2理解为计算机交互时,计算机出现错误输出...对包含空格其他特殊字符字符串用引号括起来。匹配功能 match STRING REGEXP匹配字符串并返回匹配字符串长度。...如果一直用用,你可以放在一个alias文件下面,比如: 在用户目录下创建alias文件: # -f 为常规文件则为真,-e为指定文件存在则为真,-d目录存在为真,-L为符号链接为真,-r或-w或-x...需要注意是,在shell脚本中alias别名默认是关闭,在shell里面执行命令是重新生成一个子进程。所以你可以通过login 选项来设置。 #!...login 选项作用是使脚本子shell成为一个login shell,而login shell会读取系统用户profile及rc文件

98930

必会 24 道 Shell 脚本面试题

如下是一些面试过程中,经常会遇到 shell 脚本面试问题及解答: Q:1 Shell脚本是什么、它是必需吗? 答:一个Shell脚本一个文本文件包含一个或多个命令。...用户变量由系统用户来生成定义,变量值可以通过命令“echo $”查看。 Q:4 如何将标准输出错误输出同时重定向到同一位置?...答:这里两个方法来实现: 方法一: 2>&1 (如# ls /usr/share/doc > out.txt 2>&1 ) 方法二: &> (如# ls /usr/share/doc &> out.txt...答:break命令一个简单用途是退出执行中循环。我们可以在whileuntil循环中使用break命令跳出循环。 Q:9 shell脚本中continue命令作用 ?...答:两种方法来执行算术运算: 1.使用expr命令 # expr 5 + 2 2.用一个美元符号方括号($[ 表达式 ])例如: test=$[16 + 4] ; test=$[16 + 4] Q:

1K30

面试linux运维一定会问到Shell脚本这24个问题

如下是一些面试过程中,经常会遇到 shell 脚本面试问题及解答: Q:1 Shell脚本是什么、它是必需吗? 答:一个Shell脚本一个文本文件包含一个或多个命令。...用户变量由系统用户来生成定义,变量值可以通过命令“echo $”查看。 Q:4 如何将标准输出错误输出同时重定向到同一位置?...答:这里两个方法来实现: 方法一: 2>&1 (如# ls /usr/share/doc > out.txt 2>&1 ) 方法二: &> (如# ls /usr/share/doc &> out.txt...答:break命令一个简单用途是退出执行中循环。我们可以在whileuntil循环中使用break命令跳出循环。 Q:9 shell脚本中continue命令作用 ?...答:两种方法来执行算术运算: 1.使用expr命令(# expr 5 + 2) 2.用一个美元符号方括号($[ 表达式 ])例如:test=$[16 + 4] ; test=$[16 + 4] Q:

1.7K11

必会 24 道 Shell 脚本面试题

如下是一些面试过程中,经常会遇到 shell 脚本面试问题及解答。 Q:1 Shell 脚本是什么、它是必需吗? 答:一个 Shell 脚本一个文本文件包含一个或多个命令。...用户变量由系统用户来生成定义,变量值可以通过命令 “echo $” 查看。 Q:4 如何将标准输出错误输出同时重定向到同一位置?...答:这里两个方法来实现: 方法一: 2>&1 (如# ls /usr/share/doc > out.txt 2>&1 ) 方法二: &> (如# ls /usr/share/doc &> out.txt...答:break 命令一个简单用途是退出执行中循环。我们可以在 while until 循环中使用 break 命令跳出循环。 Q:9 shell 脚本中 continue 命令作用 ?...答:两种方法来执行算术运算: 1.使用 expr 命令 # expr 5 + 2 2.用一个美元符号方括号($[ 表达式 ])例如: test=$[16 + 4] ; test=$[16 + 4]

9K30

在腾讯云CVM上使用Go语言编译软件

第二步,编译可执行文件 go get命令已经为我们下载并安装好了caddy,但是还是构建新执行文件怎么办呢?使用go build命令编译新可执行文件。...虽然在这个系统上已经安装了Caddy,但是还是创建编译环境,执行go build命令并指定相关路径。...是这样,这个脚本可以自动编译各个系统软件包,并自动输出到当前目录。...文件名为系统名称架构,命 名方式package-OS-architecture 首先,切换到主目录并在文本编辑器中创建一个名字为go-executable-build.bash文件: cd ~ nano...将这些目标放在一个格式为OS / Platform数组中,因此可以使用我们用从路 径中提取包名称相同方法将每个对分成GOOSGOARCH变量。

2.2K50

Linux 命令完全手册「建议收藏」

如果相应文件已经存在,将会被提取结果覆盖。...另一个你可能发现很有用方法是——使用参数 -v 反转结果,排除与特定字符串匹配行: Linux 中 sort 命令 假定你一份文本文件,里面包含一些狗狗名字: 这串名字并没有进行排序。...假定有两个文件,它们包含几乎相同信息,你没有办法找出区别。 diff 会处理文件,然后告诉你差异地方。 假定有两个文件: dogs.txt moredogs.txt。...当执行一个 Shell 脚本或其他命令时,Bash 会为其单独启动一个子 Shell,这个子 Shell 不会包含当前 Shell 局部变量。...你也可以通过附加 -i 参数,清除所有已经设置环境变量: env -i node app.js 这种情况下,你可能得到一个错误提示 env: “node”: 没有那个文件或目录,这是由于 Shell

4.3K30
领券