gpt4 book ai didi

linux - 删除文件 txt 中所有没有模式的字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:33 26 4
gpt4 key购买 nike

我有一个非常大的文件,其中包含模式信息:

 0 <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>274</font>
1 <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>284</font>
2 <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>299</font>
3 <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>296</font>
4 <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>273</font>

我想把这一行改成

274
284
299
296
273

模式是:

'#4e9a06'>[0-9]*</font>

我用过这个:

perl -i.bak -pe 's/.*4e9a06//' copy.txt

但我还有:

'>274</font>
'>284</font>
'>299</font>
'>296</font>
'>273</font>
'>272</font>

我尝试使用 sed :

cat file.bak | sed 's/form>/ /g' > copy2.txt

但这行不通。你能帮我去掉剩下的字符吗?感谢您的回答。

最佳答案

假设您有一个名为 copy.txt 的文件,其中存储了您的信息。然后你只需运行:

cat copy.txt |egrep -o ">[0123456789]+<"|tr -d  "<"|tr -d ">"

这会打印文件的行,然后只输出正则表达式的匹配部分(而不是像 egrep 那样输出整行)。然后你就把“<”和“>”剪掉,这也是匹配的。

-编辑-

也许更友好的语法和一些额外的修复。

cat copy.txt |egrep -o ">[1-9][0-9]*<"|tr -d  "<"|tr -d ">"

这里的数字必须以 1 到 9 的数字开头。然后其他数字可能存在也可能不存在。

关于linux - 删除文件 txt 中所有没有模式的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673833/

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