gpt4 book ai didi

regex - sed 从行尾删除字符模式?

转载 作者:行者123 更新时间:2023-12-04 20:35:07 25 4
gpt4 key购买 nike

我在这里看到了几个与我的要求相近但又不完全相近的例子。

我有一些竖线分隔的平面文件,其中包含一些我想使用 sed 删除的无关列数据。基本结构如下所示:

Column1|Column2|Column3|ignore
data1|data2|data3|ignore
data4|data5|data6|ignore

我想要一个使用 sed 的表达式,它会产生:

Column1|Column2|Column3
data1|data2|data3
data4|data5|data6

这应该很简单,但正则表达式和 sed 一如既往地伤害了我的大脑。我认为这会起作用:

sed "s/\|ignore//" table1.txt >filtered.txt

但这似乎什么都不做。我做错了什么?

注意:这是适用于 Windows 的 GNU sed。

最佳答案

不要逃出管道。

$ sed 's/|ignore//' table1.txt > filtered.txt

在我的机器上工作。 (Cygwin 上的 GNU sed。)

这里的想法是 \| 是正则表达式管道,而不是文字管道。我不太清楚如何解决这些问题,但是要在 sed 正则表达式中使用 ({|,您必须转义他们。但是 [ 不会被转义,除非你想要文字字符。

关于regex - sed 从行尾删除字符模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476045/

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