gpt4 book ai didi

linux - 如何在解析数据之前替换字符

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:14 27 4
gpt4 key购买 nike

NUM[$a]=`sed '/NE.RE\**/!d;s///;s/\*.*//' < /file.txt

当我使用此代码时,只有以 * 作为行分隔符的文件才被解析,但是当文件具有其他分隔符(例如 -)时,它可能不会解析我想要获取的数据,因为指定了 * 。在解析数据之前,我是否可以先将 - 字符替换为 * ?怎么做?

最佳答案

更好地了解正在发生的事情可能会帮助您修改它以满足您的需求。以下表达式不是简单的替换:

sed '/NE.RE\**/!d;s///; s/\*.*//' < /file.txt

将其分解为两个主要部分:

sed '/NE.RE\**/!d;s///;

其中说:

/NE.RE\**/!d;s///;  - match 'NE (anychar) RE (followed by) * (zero or more times)'
- if matched, remove first matching 'NE (anychar) RE (any number of *)'

然后剩下的行:

s/\*.*//  - substitute/remove '*' (and any chars that follow)

例如,如果您的 file.txt 包含:

this line has NE1RE** and NE1RE* some more
this line is just a line
this line has NE2RE* and some more
this line is just a line

运行 sed 表达式将在脚本中产生以下赋值:

this line has  and NE1RE
this line has and some more

从解释中,您可以看到如果需要更改其行为,可以在哪里替换 -。祝你好运。

关于linux - 如何在解析数据之前替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24602391/

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