我有一个文件,ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC
。提取两个字符串之间的字符串
我想剪切两个字符串之间的文本:第一个TS
和DOCC
。我试图
导致_BAR99.DAT
–匹配在文件名中第二TS
。
期望的结果:.TS.D20161022.TS_BAR99.DAT.
如何修改我的sed命令来达到预期的效果?
我有一个文件,ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC
。提取两个字符串之间的字符串
我想剪切两个字符串之间的文本:第一个TS
和DOCC
。我试图
导致_BAR99.DAT
–匹配在文件名中第二TS
。
期望的结果:.TS.D20161022.TS_BAR99.DAT.
如何修改我的sed命令来达到预期的效果?
echo "ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC" | sed 's/^.*\.TS\./.TS./;s/\.DOCC/./'
真棒,它的工作..我会尝试通过变量来调用它们。 –
Stro - 我试图调用变量,但我没有得到相同的结果。 ==>回声$ V1 TS ==>回声$ V2 DOCC ==>回声$文件名 ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC ==>回声$文件名| sed“s /^.*\.$ v1 \ ./.$ v1 ./; s/\ $ v2> .TS.D20161022.TS_BAR99.DAT.DOCC 预期结果:.D20161022.TS_BAR99.DAT。 –
'''#/斌/庆典 V1 = TS V2 = DOCC 名= ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC 回声$文件名!| sed的“S /^.*\.$ V1 \ ./.$ v1./;s/\.$v2//“''' – strobelight
regexes是贪婪的。所以'。* TS'将尽可能地匹配字符串,这意味着它将匹配字符串中的最后一个'TS'。 –
谢谢Marc B,有没有办法实现预期结果 –
'(TS。* \。DOCC)'而不是?这将迫使它在TS/DOCC之间尽可能匹配,捕获“第二”作为其中的一部分。 –