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 に答える