如何检索shell中两个单词之间的所有代码?

时间:2016-04-19 14:14:26

标签: linux algorithm shell

我需要你的帮助。

我有一个包含许多行的文本文件,对于每行我想要提取代码。 这段代码是两种模式:

1)"隔离"

2)","

我的log.txt的例子:

  

George Thibault给某人隔离:x27041992,两个球

     

Edward Thin向美联储提供三台PC 隔离区:m5405051993,

     

Tommy Dijoux给一只鞋隔离:cD001252000,给luc

通缉新文件:

  

x27041992

     

m5405051993

     

cD001252000

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

尝试使用以下bash脚本

#!/bin/bash
>output
while read line; do
    for word in $line; do
        if [[ $word == *","* ]]; then
            echo ${word::-1} >> output
        fi
    done
done < gr

注意:使用shell循环处理文本文件不是一个好习惯。 read this

答案 1 :(得分:0)

匹配隔离区和第一个,之间的子字符串,并用记住的字符串替换everthing。
如果您不想删除:,请更改此命令。

sed 's/.*quarantine\([^,]*,.*/\1/' log.txt