Grep变量模式匹配

时间:2013-07-02 11:30:25

标签: linux bash awk grep

我怎样才能让它发挥作用?

#!/bin/bash
SOMETHING=$(egrep '^  something' /some/dir/file.conf | awk -F '.' '{print $1}' | awk    '{print $2}')

if [ $SOMETHING = 123 ]; then
    echo "Found 123"
    else
    echo "Cannot find 123" && exit 1
fi

grep中的结果抱怨语法错误。它不喜欢'^ something'

1 个答案:

答案 0 :(得分:2)

使用管道的多个命令可以简单地用awk本身替换。使用以下脚本:

SOMETHING=$(awk '/^ something/{print substr($4, 1, 3);}' somefile.conf)
if [ "$SOMETHING" = "123" ]; then
    echo "Found 123"
else
    echo "Cannot find 123" && exit 1  
fi

编辑:在我发布我的anser之后,您似乎编辑了问题和脚本。这是修改后的awk命令,供您进行最新编辑(请勿再次执行):

SOMETHING=$(awk -F "." '/^ something/{split($1, a, " "); print a[2]}' somefile.conf)