gpt4 book ai didi

bash - tr -d 从字符串中删除精确的字符串

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

我正在尝试让 tr -d 从现有字符串中删除一串字符,而不删除其他任何地方的字符。

例如,我希望 trfoo.txt 中每个字符串的末尾删除 : OK

foo.txt 的内容:

BROKEN BONES: OK
Kefen Odvora: OK
BOOKS_FOR_MUM: OK
E: OK Amded: OK

这是我运行的命令:

cat foo.txt | tr -d ": OK$"

我希望它输出这个:

BROKEN BONES
Kefen Odvora
BOOKS_FOR_MUM
E: OK Amded

但是我得到了这个,我不想要:

BRENBNES
efendvora
BS_FR_MUM
EAmded

我该如何解决这个问题?

Mac OS X Yosemite,bash 3.2.57(1)-release

最佳答案

您使用了错误的工具。你想要 sed,而不是 tr:

cat foo.txt | sed 's/: OK$//'

或者最好

sed 's/: OK$//' foo.txt

当您的输入真的只是一个文件,而不是更复杂的命令时。


tr -d 删除在 -d 的参数中出现的所有 any 字符;它不会将其视为正则表达式来匹配和删除。具体来说,您要删除所有出现的 :OK$ 来自每一行。

关于bash - tr -d 从字符串中删除精确的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563464/

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