0

我怎样才能让它工作?

#!/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 抱怨语法错误。它不喜欢'^某事'

4

1 回答 1

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

编辑:看起来你在我发布我的分析器后编辑了问题和你的脚本。这是为您最新编辑的修改后的 awk 命令(请不要再这样做):

SOMETHING=$(awk -F "." '/^ something/{split($1, a, " "); print a[2]}' somefile.conf)
于 2013-07-02T11:41:53.907 回答