使用awk或sed从字符串中抓取文本的特定部分

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

标签: linux bash sed awk

我想从字符串中获取两个字段。这是一个例子:

$_LANG['field1'] = "field two";

我希望能够返回:field1 fieldtwo

4 个答案:

答案 0 :(得分:2)

这是使用awk的一种方式:

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

结果:

field1 field two

答案 1 :(得分:1)

sed 's/.*'\''\(.*\)'\''.*"\(.*\)".*/\1 \2/'

在shell中转义'< 3

答案 2 :(得分:0)

sed -ey:\"\':\\n\\n: -e'/[^\n]*\n/s:::;/\n[^\n]*\n/s:: :;/\n.*$/sxxx' FILE

其他可能性:

sed -ey:\"\':\\n\\n: -e'/[^\n]*\n\([^\n]*\)\n[^\n]*\n\([^\n]*\)\n.*/ sxx\1 \2x'

其他变体:

cat FILE | tr [\'\"] \\n\\n | sed '3h;6H;${x;s:\n: :p};d'

答案 3 :(得分:0)

这是使用GNU sed的一种方式:

sed -r "s/.*'(.*?)'.*\"(.*?)\".*/\1 \2/" file

结果:

field1 field two