gpt4 book ai didi

command-line - 在 sed 中捕获组

转载 作者:行者123 更新时间:2023-12-03 11:17:46 29 4
gpt4 key购买 nike

我有很多行的形式

ko04062 ko:CXCR3
ko04062 ko:CX3CR1
ko04062 ko:CCL3
ko04062 ko:CCL5
ko04080 ko:GZMA

并且非常想摆脱右边栏的 ko: 位。我正在尝试使用 sed,如下所示:
echo "ko05414 ko:ITGA4" | sed 's/\(^ko\d{5}\)\tko:\(.*$\)/\1\2/'

它只是输出我回显的原始字符串。我对命令行脚本、sed、管道等很陌生,所以如果/当我做一些非常愚蠢的事情时,请不要太生气。

让我感到困惑的主要事情是,如果我反转 \1\2 也会发生同样的事情。阅读位 \2\1或者只使用一组。我想,这意味着我缺少将 echo 输出传输到 sed 的机制,或者我的正则表达式错误或者我使用 sed 错误或者 sed 没有打印替换结果.

任何帮助将不胜感激!

最佳答案

sed 正在输出其输入,因为替换不匹配。由于您可能正在使用 GNU sed,请尝试以下操作:

echo "ko05414     ko:ITGA4" | sed 's/\(^ko[0-9]\{5\}\)\tko:\(.*$\)/\1\2/'
  • \d -> [0-9] 因为 GNU sed 不能识别\d
  • {} ->\{\} 因为 GNU sed 默认使用基本的正则表达式。
  • 关于command-line - 在 sed 中捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302434/

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