grep 正確な文字列変数

grep 正確な文字列変数

「aaa.log」ファイルから正確な文字列「CAAJ」とそれに続く内容を把握したいと思います。

cat aaa.log

CAAJ:dd20gf:acldx009:rel7

CAAJ:dd20gi:acldx009:rel7

CAAJ:dd20gp:acldx0059:rel7

CAAJ-TEST:de27ff:acldx003:rel7

CAAJ-TEST:de27ei:acldx003:rel7

CAAJ-TEST:de27ep:acldx003:rel7

予想出力:

CAAJ:dd20gf:acldx009:rel7

CAAJ:dd20gi:acldx009:rel7

CAAJ:dd20gp:acldx0059:rel7

次のコードを試しています。私はO/Pを得た。

grep -E '(^|)CAAJ(:|$)' aaa.log

CAAJ:dd20gf:acldx009:rel7

CAAJ:dd20gi:acldx009:rel7

CAAJ:dd20gp:acldx0059:rel7

ただし、正確な文字列の代わりに変数を使用すると、O / pを取得できません。

var=CAAJ

grep -E '(^|)${var}(:|$)' aaa.log

OR 

grep -E '(^|)"${var}"(:|$)' aaa.log

これらのどれも機能しません。

正確な文字列の代わりに変数を使用して希望のo / pを取得したいと思います。

ベストアンサー1

この試み..

awk -F: '$1=="CAAJ" aaa.log

awkで変数を使用する

awk -F: -vv="$var" '$1==v' aaa.log

grepコマンド

grep "^$var:" aaa.log

おすすめ記事