如何从文件中的匹配行中提取子字符串?

时间:2017-01-28 01:09:16

标签: linux shell sed grep

我用:

249

在(" ...")之间获取字符串。但是,它给了我这个文件的完整内容的结果。如何从中提取cat display.txt | sed -e 's/...\(.*\).../\1/g'

"hhgggeeee"

3 个答案:

答案 0 :(得分:0)

您可以使用perl一个衬垫:

perl -lne 'print $1 if /^\.\.\.(.*)\.\.\./' display.txt

对于您的文件,它输出:

hhgggeeee

答案 1 :(得分:0)

您可以使用sed命令。请尝试以下命令。

cat dis.txt|sed -n 's/\.\.\.\([^\.]\+\)\.\.\..*/\1/gp' 

或者使用也可以使用grep命令。

cat dis.txt|grep -o '\.\.\.\([^\.]\+\)\.\.\.'

两者都给出相同的输出。输出是

hhgggeeee

答案 2 :(得分:0)

$ sed -n 's/.*\.\{3\}\(.*\)\.\{3\}.*/\1/p' file
hhgggeeee