ループが印刷できない場合、awk

ループが印刷できない場合、awk

Test次の変数があります

Test="Environment Dev"

col2char 1を他の文字と比較してenvのフルネームを印刷したいと思います。

これは私がしたことです。

echo $Test|awk '{
if ($2 == "^D*")
print "DEV";
else
print "$2"
}'

出力が得られたが$2テストであれば、所望の出力Dと比較した。TTEST

私もこれを試しましたが、出力は変更時に変わりませんでしたcol2

echo $Test|awk '{
if ($2 ~ "^D*")
print "DEVELOPMENT"
else
print "$2"
}'
DEVELOPMENT

私が間違っている部分を助けてください。

ベストアンサー1

awkスクリプトにいくつかのエラーがあります。

  • ~ /whatever/正規表現の場合。
  • ^D正規表現にアスタリスクを追加しないでください。アスタリスクはゼロD文字と一致します。
  • $2そのまま印刷したくない場合は、二重引用符を削除してください。

考えられる解決策:

echo $Test | awk '{
if ($2 ~ /^D/)
  print "DEV";
else
  print $2
}'

おすすめ記事