从字符串中抓取文本的特定部分

时间:2013-01-07 19:22:31

标签: linux bash sed awk grep

我有一个字符串,我需要抓住两个部分 - 它们因PHP文件而异。希望有人可以提供帮助,字符串是:

$_LANG['FIELD1'] = "FIELD2";

我需要抓住FIELD1和FIELD2

2 个答案:

答案 0 :(得分:2)

这应该这样做:

# space seperated
$ sed -n "s/.*_LANG\['\([^']*\)'] = .\(\w*\).*/\1 \2/p" file
FIELD1 FIELD2

# newline seperated 
$ sed -n "s/.*_LANG\['\([^']*\)'] = .\(\w*\).*/\1\n\2/p" file
FIELD1
FIELD2

grep使用positive lookbehind

$ grep -Po "(?<=_LANG\[')[^']*" file
FIELD1

$ grep -Po '(?<=_LANG\[.FIELD1.\] = ")[^"]*' file
FIELD2

答案 1 :(得分:1)

awk -F "[\"']" '{ print $2, $4 }' file