gpt4 book ai didi

bash - 文本处理 - 如何使用 sed 从搜索结果中删除部分字符串?

转载 作者:行者123 更新时间:2023-11-29 09:31:14 24 4
gpt4 key购买 nike

我正在解析 .xml 文件以查找 HTML 标记内的名称。我找到了我需要的东西,但我只想保留姓氏。

这是我到目前为止所拥有的(用于名称的grep命令+结果清理,包括删除标签和文件名,稍后我将对它们进行排序并仅保留唯一性姓名):

grep -oP '<name>([A-ZÖÄÜÕŽS][a-zöäüõžš]*)[\s-]([A-ZÖÄÜÕŽS][a-zöäüõžš]*)</name>' *.xml --colour | sed -e 's/<[^>]*>//g' | sed 's/la[0-9]*//' | sed  's/$*.xml://' 

输出看起来像这样:

Mart Kreos
Hans Väär
Karel Väär
Jaan Tibbin
Jüri Kull

我想保留姓氏,但删除名字。

我尝试使用以下命令,但它只对某些名称有效,对其他名称无效:

sed -r 's/([A-ZÖÄÜÕŽŠ][a-zöäüõžš]+[ ])([A-ZÖÄÜÕŽS][a-zöäüõžš]+)/\2/g'

最佳答案

你应该使用 cut . 它更适合您要在此处实现的目标。而且您将避免与 UTF-8 字符纠缠不清。

这将为您的示例输出中的所有名称提供预期的结果:

cut -d ' ' -f 2

关于bash - 文本处理 - 如何使用 sed 从搜索结果中删除部分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49354421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com