Unix 提取两个符号之间的字符串

Unix 提取两个符号之间的字符串,unix,sed,Unix,Sed,在下面的示例中,我正在寻找一种方法来提取“/”和“\u1”之间的字符串。我尝试了这个命令,但它对特殊字符无效:sed-e的/(.*\)\uu/\1/' input: Sometext/CPCT02010547T_sometext 输出: 你可以用 sed-n的/*\/\(.*\)\u*/\ 1/p' sed-En的~./([^]*).*\1~p' -n选项抑制默认行输出,并打印替换结果 第一种模式是POSIX BRE正则表达式: *-匹配任何文本 \/-匹配/ \(.*)-POSIX B

在下面的示例中,我正在寻找一种方法来提取“/”和“\u1”之间的字符串。我尝试了这个命令,但它对特殊字符无效:
sed-e的/(.*\)\uu/\1/'

input:

Sometext/CPCT02010547T_sometext
输出:

你可以用

sed-n的/*\/\(.*\)\u*/\ 1/p'
sed-En的~./([^]*).*\1~p'
-n
选项抑制默认行输出,并打印替换结果

第一种模式是POSIX BRE正则表达式:

  • *
    -匹配任何文本
  • \/
    -匹配
    /
  • \(.*)
    -POSIX BRE(第一)模式中的捕获组(
    \1
  • 字符
  • *
    -字符串的其余部分
第二个正则表达式是POSIX ERE正则表达式(注意
-E
选项),而
~
用作正则表达式分隔符字符,以避免转义
/
。第一个和第二个最大的区别是捕获组模式,
([^\u]*)
匹配除
\uu
之外的任何零个或多个字符

CPCT02010547T